#/usr/bin/perl use warnings; use strict; sub eval_string { my $string=shift; eval $string; } my $string1=" sub foo { print qq(first definition\n); } foo(); "; eval_string($string1); my $string2=" sub foo { print qq(second definition\n); } foo(); "; eval_string($string2); #### ~>perl test.pl first definition Subroutine foo redefined at (eval 2) line 2. second definition