>Permission to make digital or hard copies of portions of this work for personal use is granted;
permission to make digital or hard copies of portions of this work for classroom use is also granted,
but seems ill-advised
Tangentially related, the only way for a Java properties file to be invalid is if it contains an invalid Unicode escape sequence (“\u” not followed by four digits, and not preceded by an odd number of “\”). After resolving Unicode escapes, any character sequence is a valid properties file.
The remainder of the valid Perl programs are mostly valid due to a Perl
language feature that is not commonly present in most programming languages.
Namely, Perl has a feature called “unquoted strings”, in which a sequence
of alphanumeric characters by itself is parsed as though it were a quoted string.
As an example, Figure 5 is read by OCR as the text ME, which evaluates to the
string “ME” even though the ME isn’t quoted. This would result in a syntax
error in most other programming languages.
(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.)
"An interesting thing about these images is that they’re not particularly
Perl-specific; for example, the program shown in Figure −3 also evaluates as the
number −3 in Python (and presumably several other programming languages.)"
We live in the age of Python, which I use every day. But I still also use Perl when it's the better tool for the job. And it often is!
i loved programming perl. both the act, and the book. i long since gave it up, but i am still awed by how it could both be completely unceremonious and absurdly ceremonious. my $self = shift; for instance.
It all depends on which OCR to use and therefore meaningless.
It is especially more meaningless since they do not establish the baseline (OCR "pass" % on random input).
Figure 6 represents the string
“gggijgziifiiffif”, which by pure
coincidence happens to accurately
represent the authors’ verbal reaction
upon learning that “unquoted strings”
were a feature intentionally included in
the Perl language
I'm afraid I have to tell you you lack the soul of a poet to truly appreciate the brilliant design .
Perl is magic (like litteraly). I'm fairly sure it's one of the untold inspiration of the Harry Potter books
There is a gem in the footnote right below gggijgziifiiffif, where it says it's possible to make a perl error quine by writing this line to the right location:
Illegal division by zero at /tmp/quine.pl line 1.
I just tried this perl 5.42.0, and any file name starting with a '/' will work.
SIGBOVIK papers are almost always a delight
EDIT: From their 2026 publication
>Permission to make digital or hard copies of portions of this work for personal use is granted; permission to make digital or hard copies of portions of this work for classroom use is also granted, but seems ill-advised
Popular in:
2024 (515 points, 125 comments) https://news.ycombinator.com/item?id=40197013
2021 (431 points, 165 comments) https://news.ycombinator.com/item?id=27929730
The reply near the top of the 2021 link with the Master Foo koan hits quite a bit differently in the age of vibecoding.
And others! Here's the full list:
93% of paint splatters are valid Perl programs (2019) - https://news.ycombinator.com/item?id=40197013 - April 2024 (124 comments)
93% of Paint Splatters Are Valid Perl Programs (2019) - https://news.ycombinator.com/item?id=27929730 - July 2021 (163 comments)
93% of Paint Splatters Are Valid Perl Programs - https://news.ycombinator.com/item?id=20834351 - Aug 2019 (7 comments)
93% of Paint Splatters Are Valid Perl Programs - https://news.ycombinator.com/item?id=19576425 - April 2019 (132 comments)
Tangentially related, the only way for a Java properties file to be invalid is if it contains an invalid Unicode escape sequence (“\u” not followed by four digits, and not preceded by an odd number of “\”). After resolving Unicode escapes, any character sequence is a valid properties file.
The actual paper is also highly entertaining - https://www.mcmillen.dev/sigbovik/2019.pdf
In particular, I like "Figure − 3. − 3 ." as a good little easter egg.
So they might be valid older(<v5?) PHP scripts as well?
From the paper:
"An interesting thing about these images is that they’re not particularly Perl-specific; for example, the program shown in Figure −3 also evaluates as the number −3 in Python (and presumably several other programming languages.)"
We live in the age of Python, which I use every day. But I still also use Perl when it's the better tool for the job. And it often is!
I’m more interested in how the OCR missed that ‘Stitch & Shutter’ watermark in the third one.
Hahahhahah good catch.
i loved programming perl. both the act, and the book. i long since gave it up, but i am still awed by how it could both be completely unceremonious and absurdly ceremonious. my $self = shift; for instance.
Someone should reverse that and see how many paintings can be made to execute as Perl and what those programs do when invoked.
You could kill two birds with one stone by entering them in the Obfuscated Perl Contest, were it still being held.
Every single day there's an Obfuscated Perl Contest being held somewhere on this planet....
A whole new twist on "Hackers and Painters"
It all depends on which OCR to use and therefore meaningless. It is especially more meaningless since they do not establish the baseline (OCR "pass" % on random input).
I think you’ve missed the point…
Honest question, and I’m not the person you answered to: what is the point? I sincerely don’t get it.
Figure 6 represents the string “gggijgziifiiffif”, which by pure coincidence happens to accurately represent the authors’ verbal reaction upon learning that “unquoted strings” were a feature intentionally included in the Perl language
I'm afraid I have to tell you you lack the soul of a poet to truly appreciate the brilliant design . Perl is magic (like litteraly). I'm fairly sure it's one of the untold inspiration of the Harry Potter books
I really dig your whimsy.
necronomicon, maybe
This is also a valid Perl program (I bet)
There is a gem in the footnote right below gggijgziifiiffif, where it says it's possible to make a perl error quine by writing this line to the right location:
I just tried this perl 5.42.0, and any file name starting with a '/' will work.
See also:
https://news.ycombinator.com/item?id=40202182
https://news.ycombinator.com/item?id=19576872
https://codegolf.stackexchange.com/a/48394
93% of Perl Programs are valid Paint Spatters too.
Jackson Pollock was writing perl code all along
My Stone Roses album cover is actually a bonus Perl program?
Full Fathom Five is my brain on Perl.
No, when Pollock spattered paint on a canvas, it was generally on the floor, not the Wall.
> Apparently in the brave new world of neural nets, Anything Goes™
Quite some foresight indeed!
I thought perl was finally dead enough people would stop mocking it. I'll wait til next decade.
I don't need to read the article because the headline is true.
A mentor taught me that you can also roll your face on the keyboard to produce a valid Perl program. It's easy and fun to try!
A cat walking across the keyboard works too.
https://www.tiktok.com/@evakozy/video/7693620372213730592
I think this is the first time I’ve seen a TikTok link on HN.