Skip to content

Instantly share code, notes, and snippets.

@lukeross
Last active June 22, 2024 08:02
Show Gist options
  • Save lukeross/8f8ebbe0cd551ff0909d753669bb625c to your computer and use it in GitHub Desktop.
Save lukeross/8f8ebbe0cd551ff0909d753669bb625c to your computer and use it in GitHub Desktop.
Stereogram quine in perl; taken from https://www.perlmonks.org/?node_id=118799
#!/usr/bin/perl
# Copyright (c) Marcus Post, <marcus@marcuspost.com>
# # # #
$_=q,my(@f|@c|x$_=q.my(@f|@c|x$_=q.my(@f|@c|x$_=q.m(@f||@c|x$_=q.m(@f||@c|xx
@w);@a=@f=<DAT%@w);@a=@f=<DAT%@w);@a=@f=<DAT%@w;@a=@f=<DAAT%@w;@a=@f=<DAAT%%
A>;seek(DATA|0!A>;seek(DAA|0!!A>;seek(DAA|0!A>;seek(DAA|0!!A>;seek(DAA|0!!AA
|0);@c=<DATA>;Y|0);@c<DATA>;Y||0);@c<DATA>Y||0);@c<DATA>Y|||0);@c<DATA>Y||||
until(($_=pop(zutil(($_==pp(zuttil(($_==p(zuttil(($_==p(zutttil(($_==p(zuttt
@c))=~/^_/){};Qc))=~/^_/){};Qc)))=~/^_/{};Qc)))=~/^_/{};Qc))))=~/^_/{};Qc)))
unshift(@a|$_)xnshift(@a|$_)xnshhift(a|$_)xnshhift(a|$_)xnshhiift(a|$_)xnshh
;for(1..3){pri%;for(1.3){pri%;ffor1.3){pri%;ffor1.3){pri%;ffor11.3){pri%;fff
nt(shift(@c));!nt(shft(@c));!ntt(hft(@c));!ntt(hft(@c));!ntt(hftt(@c));!nttt
}for(@f){my($sY}for@f){my($sY}for@f){my($sY}for@f){my($sY}for@f){mmy($sY}foo
);@b=split//;$z);@b=plit//;$z);@b=plit//;$z);@b=plit//;$z);@b=plit//;;$z);@@
_=shift(@c);s!Q_=shit(@c);s!Q_=shit(@c);s!Q_=shit(@c);s!Q_=shit(@c);s!QQ_=ss
/(.{15}).*/\1/x/(.{15})*/\1/x/(.{15})*/\1/x/(.{15})*/\1/x/(.{15}})*\1/xx/(..
;@w=split//;fo%;@w=split/;fo%;@w=split/;fo%;@w=split/;fo%;@w=spllit;fo%%;@ww
r(@b){$w[$s+15!r(@b){$w[$s15!r(@b){$w[$s15!r(@b){$w[$s15!!(@b){$$w[s15!!!(@@
-$_]=(($w[$s]eY-$_]=(($w[$s]YY-_]=(($w[$s]YY-_]=(($w[$s]YY-_]=((($[$s]]YY-__
q"|")?".":$w[$zq"|")?".":$w[$zq|")?"."::$[$zq|")??."::$[[$z|")???.::$$[[$z||
s]);$s++;}for(Qs]);$s++;}for(Qs];$s++;}}or(Qs];$$s+;}}orr(Qs]$$s++;}}orr(Qss
1..75){unless(x1..75){unless(x1.75){unnlss(x1.775){uulsss(x1.75){uuulsss(x11
$w[$_]ne''){$w%$w[$_]ne''){$w%$w$_]nee''{$w%$$w$_]nn''{{$w%$$w_]nnn''{{$w%$$
[$_]=$w[($_-1)![$_]=$w[($_-1)![$_=$w[[($_-)![$_==w[[($$_-)![$__w[[[($$_-)![[
];}}print(joinY];}}print(joinY];}prinnt(joinY;}prinntt(joinY;}pinnntt(joinYY
""|@w);print"\z""|@w);print"\z""|w);;print"\z"|w);;pprint"\z"|w;;ppprint"\zz
n";}print@a;,;#n";}print@a;.;#n";priint@a;.;#n;priintt@a;.;#n;piinntt@a;.;##
y!|zY\!%x!,Q!;#y!|zY\!%x!.Q!;#y!zY\!!%x!.Q!;#!zY\!!%x!!.Q!;#!z\!!!%x!!.Q!;##
s{Q.*\n}[]g;#<>s{Q.*\n}[]g;#<>sQ.*\nn}[]g;#>sQ.*\nn}[]]g;#>sQ.\nnn}[]]g;#>ss
eval;#EndFini!$eval;#EndFini!$eal;#EEndFin!$eal;;##nddFin!$ea;;###nddFin!$ee
__DATA__
000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000
000000000000110000000110000000000000000011100000000000000000
000000000001110000001110000000000000000111110000000000000000
000000000011110000011110000000000000001111111000000000000000
000000000011110000011110000000000000001111110000000000000000
000000000011110000011110000000000000001111100000000000000000
000001111111111111111111111110000000001111100000000000000000
000011111111111111111111111100000000000111100000000000000000
000111111111111111111111111000000000000111100000000000000000
000000000011110000011110000000000000000111100000000000000000
000000000011110000011110000000000000000111100000000000000000
000000000011110000011110000000000000000111100000000000000000
000000000011110000011110000000000000000011100000000000000000
000001111111111111111111111110000000000011100000000000000000
000011111111111111111111111100000000000011100000000000000000
000111111111111111111111111000000000000001100000000000000000
000000000011110000011110000000000000000001100000000000000000
000000000011110000011110000000000000000001100000000000000000
000000000011110000011110000000000000000000000000000000000000
000000000011100000011100000000000000000000000000000000000000
000000000011000000011000000000000000000011110000000000000000
000000000000000000000000000000000000000111111000000000000000
000000000000000000000000000000000000000111110000000000000000
000000000000000000000000000000000000000011110000000000000000
000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment