open FH, "sample.txt" or die $!; $str = ; close FH; my @arr = split("@@",$str); sub getTableID($$) {return 100;} $subs{$arr[1]} = sub{getTableID($_[0],$_[1])}; my $val1 = $arr[0]; my $call = $arr[1]; my $func; if ($subs{$call}) { $func=$subs{$call}->(@arr1); print 'call:',$call.' func:'.$func."\n"; } else { print 'unknown sub:'.$call."\n"; }