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