4 ms·
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
by puls 8y 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.
- 275qaz 8y agoIt'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 8y agoOr "quine.pl line 1." Evaluates to 0? Or should that be 0.0???
- yellowapple 8y agoYeah, 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 8y agoI think it's equivalent to something like Illegal::division(by::zero(at/tmp/quine . pl::line(1.)))
- fanf2 8y agoIt is slightly more complicated than that :-) https://fanf.dreamwidth.org/131318.html https://fanf.dreamwidth.org/131318.html the actual parse is division->Illegal( zero->by( ((“at” / “tmp”) / “quine”) . line->pl(1.0) ))
- nanis 8y 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
- intuitionist 8y agoThe 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 7y agoKnowing Larry, I believe he is currently working on a patch.
- rurban 7y agoLarry 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.
- HocusLocus 8y 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.