##
$ast_print = sub {print "** $_[0] **\n"};
process_and_print(25, $ast_print);
sub process_and_print
{
my $val = $_[0];
my $print_func= $_[1];
#..... processing ....
&$print_func($val);
}
####
$op = "print \"hello\"";
eval $op;
####
while (<>) { eval; print $@; }