есть массив, который содержит два числа и операцию между ними(плюс, минус, уможить, разделить)
$elems[1] и есть значение операции, принимаемые значения могут быть такими +, - ,*, /
мне нужно получить значение этих чисел, если я делаю проверку на операцию через конструкцию типа
my $a = $elems[0];
my $b = $elems[2];
if ($elems[1] eq '+'){my $result = addval($a, $b)}
происходит ошибка использования неинициализированной переменной $result и соответственно вычисление не происходит
при такой записи
my $a = $elems[0];
my $b = $elems[2];
my $result = addval($a, $b);
все вычисляется, мне нужно сопоставлять значение операции и вызывать соответствующие подпрограммы, eval использовать нельзя
подскажите в чем может быть проблема
вот на всякий случай код подпрограммы
sub addval{
my $value1 = shift @_;
my $value2 = shift @_;
my $res = $value1 + $value2;
return $res;