package Devel::Dumpcode;
sub DB::DB { } # Do nothing special
sub main::source_of_function {
my $package = caller;
$function = $package . '::' . shift();
my ($file, $start, $end) =
$DB::sub{$function} =~ /(.*):(\d+)-(\d+)/;
@{"::_<$file"}[$start..$end];
}
1;
####
#!/usr/bin/perl
for (;;) {
print "Gen = ", Gen_val(), "\n";
my @code = source_of_function('Gen_val');
for (@code) {
last if s{(\d+)(?=;\s+\# EDIT ME)}
{(($1 * 1103515245 + 12345) / 65536) % 32768}e;
}
eval join '', @code;
}
sub Gen_val {
1; # EDIT ME
}
####
perl -d:Dumpcode tryme.pl