in reply to Self-printing program

$body isn't being printed twice. The first parameter of printf is the FORMAT string (perldoc printf).

So the printf prints the character with the ASCII code 34, then the value of body (which spans several lines - find the closing quote character), then another character with ASCII code 34.

Note that this is a bug. Code 34 is a double quote, and you don't get the same program. The program you get is non-functional after two steps. It should be 39, not 34.