1package Psh::Support::Functions; 2 3require Psh; 4 5my %functions=(); 6 7sub add_function { 8 my $name= shift; 9 my $text= shift; 10 $functions{$name}= [map { $_."\n" } split /\n/, $text]; 11} 12 13sub call_function { 14 my $name= shift; 15 Psh::process_variable($functions{$name}) if $functions{$name}; 16} 17 18sub remove_function { 19 my $name= shift; 20 delete $functions{$name}; 21} 22 23sub get_function { 24 my $name= shift; 25 return $functions{$name}; 26} 27 28sub list { 29 return sort keys %functions; 30} 31 321; 33