map { s/Z/\x24/g; eval() } map { m/(.*)/ } q{THE PROGRAM}; ## The statements in order of execution: q{THE PROGRAM} # The string containing the program, all $ replaced with Z map{m/(.*)/} # Put the string in $_, otherwise the regex fails # with "Can't modify constant item in substitution" map { # Using the variable $_ s/Z/\x24/g; # Replace all 'Z' with '$' (to replace the missing sigils) eval() # and do a string eval }