by puls 7 years ago

I love this footnote so much:

> This feature does enable a neat quine: the Perl program “Illegal division by zero at /tmp/quine.pl line 1.”, when saved in the appropriate location, outputs “Illegal division by zero at /tmp/quine.pl line 1.” The reason for this behavior is left as an exercise for the reader.

intuitionist 7 years ago

The part that left my office in stitches:

> (To be fair to Perl, when perl is run with the -w flag to enable warnings, it does helpfully inform the user that at some point in the future, the Perl developers will most likely pick gggijgziifiiffif as a new reserved word:

>> Unquoted string "gggijgziifiiffif" may clash with future reserved word at - line 1.)

  • sitkack 7 years ago

    Knowing Larry, I believe he is currently working on a patch.

    • rurban 7 years ago

      Larry left perl5 about 15 years ago, and nobody every will reserve random keywords like this. Keywords are very problematic in perl5 and are not needed all. You can add random new keywords at runtime, and you can add methods doing almost everything, like accepting blocks or functions, implementing most control structures.

nanis 7 years ago
     $ perl -MO=Deparse -e "Illegal division by zero at /tmp/quine.pl line 1."
    'division'->Illegal('zero'->by('at' / 'tmp' / 'quine' . line'->pl(1)));
     -e syntax OK
275qaz 7 years ago

It's trying to divide "Illegal division by zero at /" by "tmp/quine.pl line 1." and "tmp/quine.pl line 1." evaluates to 0?

  • benj111 7 years ago

    Or "quine.pl line 1." Evaluates to 0?

    Or should that be 0.0???

    • yellowapple 7 years ago

      Yeah, I think it's both divisions. Both 'perl -e "in /tmp"' and 'perl -e "tmp/quine"' result in the same division-by-zero error.

  • barthold 7 years ago

    I think it's equivalent to something like

      Illegal::division(by::zero(at/tmp/quine . pl::line(1.)))
HocusLocus 7 years ago

> This feature does enable a neat quine: the Perl program “Illegal division by zero at /tmp/quine.pl line 1.”, when saved in the appropriate location, outputs “Illegal division by zero at /tmp/quine.pl line 1.” The reason for this behavior is left as an exercise for the reader.

For quines, see the chapter "Air on G's String", a dialogue between Achilles and the Tortoise in Douglas Hofstadter's book GODEL,ESCHER,BACH: AN ETERNAL GOLDEN BRAID.