$e = "my \$i=0; sub foo{ print \"\$i foo\\n\"; if (\$i < 10){ \$i++; print \"calling foo\\n\"; &foo; } } &foo\;"; eval "$e"; print $@