Как вы вызываете функцию из хеш-значения?
%hash = { "1" => \&some_function } ; # this function has one parameter sub some_function { my $arg = $_[0]; return $arg; } $hash{"1"}->($arg); <-- tried this but doesn't work.
%hash - это хеш. { "1" => \&some_function } является ссылкой на хеш. Вам нужен один из следующих вариантов:
%hash
{ "1" => \&some_function }
$hash = { "1" => \&some_function }; $hash->{"1"}->($arg);
или
%hash = ( "1" => \&some_function ); $hash{"1"}->($arg);
Подробнее см. perldata и perlref .
Чтобы объявить хеш, используйте круглые скобки. Фигурные скобки предназначены для хеш-ссылок / анонимных хешей.
%hash = ( 1 => \&some_function ); sub some_function { my $arg = $_[0]; return $arg } $hash{1}($arg);