use strict; use warnings; use B::Deparse; my $subref = sub {print "Hello\n"}; $subref->(); my $code = B::Deparse->new->coderef2text($subref); $code =~ s/print\s\S+/die "Bye";/; $subref = eval "sub $code"; $subref->();