for my $str ( 1..3 ) { my $lex = ""; $str =~ m# (\d) (?{ $lex = $1; print " In: $lex\n" }) #x; print "Out: $lex\n"; } #### for $i ( 1..3 ) { my $lex = ""; $code = sub { $lex = "Test $i"; print " In: $lex\n"; } unless $code; $code->(); print "Out: $lex\n"; }