Created
December 18, 2012 21:26
-
-
Save cgoldberg/4332167 to your computer and use it in GitHub Desktop.
Perl Camel code - render 4 ascii camels from camel-styled source code.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/perl -w # camel code | |
use strict; | |
$_='ev | |
al("seek\040D | |
ATA,0, 0;");foreach(1..3) | |
{<DATA>;}my @camel1hump;my$camel; | |
my$Camel ;while( <DATA>){$_=sprintf("%-6 | |
9s",$_);my@dromedary 1=split(//);if(defined($ | |
_=<DATA>)){@camel1hum p=split(//);}while(@dromeda | |
ry1){my$camel1hump=0 ;my$CAMEL=3;if(defined($_=shif | |
t(@dromedary1 ))&&/\S/){$camel1hump+=1<<$CAMEL;} | |
$CAMEL--;if(d efined($_=shift(@dromedary1))&&/\S/){ | |
$camel1hump+=1 <<$CAMEL;}$CAMEL--;if(defined($_=shift( | |
@camel1hump))&&/\S/){$camel1hump+=1<<$CAMEL;}$CAMEL--;if( | |
defined($_=shift(@camel1hump))&&/\S/){$camel1hump+=1<<$CAME | |
L;;}$camel.=(split(//,"\040..m`{/J\047\134}L^7FX"))[$camel1h | |
ump];}$camel.="\n";}@camel1hump=split(/\n/,$camel);foreach(@ | |
camel1hump){chomp;$Camel=$_;y/LJF7\173\175`\047/\061\062\063\ | |
064\065\066\067\070/;y/12345678/JL7F\175\173\047`/;$_=reverse; | |
print"$_\040$Camel\n";}foreach(@camel1hump){chomp;$Camel=$_;y | |
/LJF7\173\175`\047/12345678/;y/12345678/JL7F\175\173\0 47`/; | |
$_=reverse;print"\040$_$Camel\n";}';;s/\s*//g;;eval; eval | |
("seek\040DATA,0,0;");undef$/;$_=<DATA>;s/\s*//g;( );;s | |
;^.*_;;;map{eval"print\"$_\"";}/.{4}/g; __DATA__ \124 | |
\1 50\145\040\165\163\145\040\157\1 46\040\1 41\0 | |
40\143\141 \155\145\1 54\040\1 51\155\ 141 | |
\147\145\0 40\151\156 \040\141 \163\16 3\ | |
157\143\ 151\141\16 4\151\1 57\156 | |
\040\167 \151\164\1 50\040\ 120\1 | |
45\162\ 154\040\15 1\163\ 040\14 | |
1\040\1 64\162\1 41\144 \145\ | |
155\14 1\162\ 153\04 0\157 | |
\146\ 040\11 7\047\ 122\1 | |
45\15 1\154\1 54\171 \040 | |
\046\ 012\101\16 3\16 | |
3\15 7\143\15 1\14 | |
1\16 4\145\163 \054 | |
\040 \111\156\14 3\056 | |
\040\ 125\163\145\14 4\040\ | |
167\1 51\164\1 50\0 40\160\ | |
145\162 \155\151 | |
\163\163 \151\1 | |
57\156\056 | |
# Output: | |
# | |
# mJXXLm. .mJXXLm | |
# JXXXXXXXXL. JXXLm. .mJXXL .JXXXXXXXXL | |
# {XXXXXXXXXXX. JXXXmXXXXm mXXXXmXXXL .XXXXXXXXXXX} | |
# .XXXXXXXXXXXXXL. {XXXXXXXXXF 7XXXXXXXXX} .JXXXXXXXXXXXXX. | |
# JXXXXXXXXXXXXXXXXL.`XXXXXX. .XXXXXX'.JXXXXXXXXXXXXXXXXL | |
# JXXXXXXXXXXXXXXXXXXXmXXXXXXX. .XXXXXXXmXXXXXXXXXXXXXXXXXXXL | |
# .XXXXXXXXXXXXXXXXXXXXXXXXXXXXX} {XXXXXXXXXXXXXXXXXXXXXXXXXXXXX. | |
# .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. | |
# XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXF 7XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX | |
# XX'7XXXXXXXXXXXXXXXXXXXXXXXXXF 7XXXXXXXXXXXXXXXXXXXXXXXXXF`XX | |
# XX {XXXFXXXXXXXXXXXXXXXXXXXF' `7XXXXXXXXXXXXXXXXXXX7XXX} XX | |
# `X}{XXX'7XXXFXXXXX^XXXXX `' `' XXXXX^XXXXX7XXXF`XXX}{X' | |
# `'XXX' {XXX'XXXXX 7XXXF 7XXXF XXXXX`XXX} `XXX`' | |
# .XX} {XXF {XXXX}`XXX} {XXX'{XXXX} 7XX} {XX. | |
# {XX `XXL `7XX} 7XX} {XXF {XXF' JXX' XX} | |
# `XX `XXL mXXF {XX XX} 7XXm JXX' XX' | |
# XX 7XXXF `XX XX' 7XXXF XX | |
# XX. JXXXX. 7X. .XF .XXXXL .XX | |
# {XXL 7XF7XXX. {XX XX} .XXXF7XF JXX} | |
# `XXX' `XXXm mXXX' `XXX' | |
# ^^^^^ ^^^^^ | |
# .mJXXLm mJXXLm. | |
# .mJXXL .JXXXXXXXXL JXXXXXXXXL. JXXLm. | |
# mXXXXmXXXL .XXXXXXXXXXX} {XXXXXXXXXXX. JXXXmXXXXm | |
# 7XXXXXXXXX} .JXXXXXXXXXXXXX. .XXXXXXXXXXXXXL. {XXXXXXXXXF | |
# .XXXXXX'.JXXXXXXXXXXXXXXXXL JXXXXXXXXXXXXXXXXL.`XXXXXX. | |
# .XXXXXXXmXXXXXXXXXXXXXXXXXXXL JXXXXXXXXXXXXXXXXXXXmXXXXXXX. | |
# {XXXXXXXXXXXXXXXXXXXXXXXXXXXXX. .XXXXXXXXXXXXXXXXXXXXXXXXXXXXX} | |
# XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX. .XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX | |
# 7XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXF | |
# 7XXXXXXXXXXXXXXXXXXXXXXXXXF`XX XX'7XXXXXXXXXXXXXXXXXXXXXXXXXF | |
# `7XXXXXXXXXXXXXXXXXXX7XXX} XX XX {XXXFXXXXXXXXXXXXXXXXXXXF' | |
# `' XXXXX^XXXXX7XXXF`XXX}{X' `X}{XXX'7XXXFXXXXX^XXXXX `' | |
# 7XXXF XXXXX`XXX} `XXX`' `'XXX' {XXX'XXXXX 7XXXF | |
# {XXX'{XXXX} 7XX} {XX. .XX} {XXF {XXXX}`XXX} | |
# {XXF {XXF' JXX' XX} {XX `XXL `7XX} 7XX} | |
# XX} 7XXm JXX' XX' `XX `XXL mXXF {XX | |
# XX' 7XXXF XX XX 7XXXF `XX | |
# .XF .XXXXL .XX XX. JXXXX. 7X. | |
# XX} .XXXF7XF JXX} {XXL 7XF7XXX. {XX | |
# mXXX' `XXX' `XXX' `XXXm | |
# ^^^^^ ^^^^^ | |
# The use of a camel image in association with Perl is a trademark of O'Reilly | |
# & Associates, Inc. Used with permission. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Seems to be a bit jacked up with modern perl sadly (5.26)... no respect for the classics