Если одна строка выражается следующим образом: $ str = "5 + 2-1"; Я хотел бы получить результат вычисления из этой строки. Как преобразовать в скаляр, чтобы вычислить это? Спасибо.Получить результат вычисления строки perl
4
A
ответ
8
Если вы уверены, что строка не содержит вредоносного кода, вы можете использовать eval для обработки содержимого этого кода в качестве Perl-кода.
#!/usr/bin/perl
use strict;
use warnings;
my $string = "5+2-1";
print eval($string);
#print 6
10
Самый простой способ сделать это:
print eval('5+2-1');
, но это не безопасно:
print eval('print "You are hacked"');
Вы должны проверить строку, прежде чем eval
его. Также вы можете использовать модуль Math::Expression или многие другие модули из cpan:
#!/usr/bin/perl
use strict;
use warnings;
use Math::Expression;
my $env = Math::Expression->new;
my $res = $env->Parse('5+2-1');
# my $res = $env->Parse('print you are hacked'); # no math expression here
print $env->Eval($res);
Смежные вопросы
- 1. C результат вычисления непонятен
- 2. Любой способ получить результат простого вычисления выражения?
- 3. Получить результат вычисления javascript как обычный текст?
- 4. Java - как получить максимальный результат вычисления
- 5. Результат вычисления смены Java
- 6. Параллельные вычисления в Perl
- 7. Perl Распределенные параллельные вычисления
- 8. Как изменить результат вычисления?
- 9. asp.net странный результат вычисления
- 10. Неожиданный результат вычисления java
- 11. Matlab неверный результат вычисления
- 12. Неожиданный результат вычисления
- 13. Результат вычисления не отображается
- 14. Некорректное результат вычисления
- 15. неожиданный результат при конкатенации строки в perl
- 16. Странный результат вычисления Objective-C
- 17. получить результат вычисления из двух столбцов в sql-сервере
- 18. Странный результат вычисления по модулю
- 19. js wont показать результат вычисления
- 20. получить время из строки - Perl
- 21. Получить результат командной строки Linux
- 22. Perl Regex Получить токен из строки
- 23. Как я могу получить результат гистограммы после вычисления?
- 24. хочу получить результат вычисления вместо <связанного метода ... Python 2.8
- 25. Результат преобразования в Perl
- 26. Результат вычисления данных Datareader в списке C#
- 27. Linq: Отфильтровать результат вычисления и повторно использовать этот результат
- 28. Результат вычисления отображения на той же странице
- 29. Добавление разделителей запятой в результат вычисления
- 30. Разбор строки для вычисления чисел