in reply to Dynamic Hash value

Maybe all you need are objects?

(pure intellectual masturbation ;)

$\="\n";$,="\t"; { package SAS; our ($ini,$last); sub _1 {$ini-$last} sub _2{$last-$ini} sub _3 {$ini-$last} } $SAS::ini=4; $SAS::last=2; print &SAS::_1, &SAS::_2 , &SAS::_3;
#or

package SAS2; our ($ini,$last); sub _1 {$ini-$last} sub _2{$last-$ini} sub _3 {$ini-$last} package main; $ini=10; $last=5; print SAS2::_1(), SAS2::_2(), SAS2::_3();

If you really need a hash like structure you may wanna try investigate the %SAS:: hash to grep all functions starting with an underscore.

print map {$_->()} grep {/::_/} values %SAS::;

of course this map-grep operation could be a method of your object ...

Cheers Rolf

UPDATE: expanded code examples