perl -d filename.pl #### W $_ #### my(@f,@c,@w);@a=@f=;seek(DATA,0,0);@c=; until(($_=pop(@c))=~/^_/){};unshift(@a,$_);for(1..3) {print(shift(@c));}for(@f){my($s);split//; $_=shift(@c);$_=~s/(.{15}).*/\1/;@w=split//;for(@_) {$w[$s+15-$_]=(($w[$s]eq",")?".":$w[$s]);$s++;} for(1..75){unless($w[$_]ne''){$w[$_]=$w[($_-1)];}} print(join"",@w);print"\n";}print@a; #### my(@f,@c,@w); @a=@f=; #Read everything from __DATA__ onward into #array @f and @a seek(DATA,0,0); #Seek to begin of source file @c=; #Read it all into @c , #!, DATA, and all until( ($_=pop(@c)) =~ /^_/ ){}; #This removes one line at a time from the end # of the source copy in @c, until the line # removed begins with an underscore (i.e. __DATA__ #Now, all that remains in @c is the actuall code; #all __DATA__ and the __DATA__ marker itself have #been removed. unshift(@a,$_); # $_, which still contains the string "__DATA__" we #removed from @c, gets placed at the beginning of @a. We # now have @c, which contains everything in the file up to # the last eval line, @a, which contains the "__DATA__" line # and all of the DATA, and @f which contains just the DATA # contents for(1..3){ #Just do this three times print(shift(@c)); #pop of the top three lines of source and #print them. e.g., "#!/usr/bin/perl", copyright notice, and } # the four hashmarks to align your eyes. for(@f){ # once for each line of DATA my($s); #Remember, 'my' will undef the scalar out everytime # this is reached. Could just as easily be $s=0; split//;#Split it up into an array byte-by-byte. If the #string was "1234", @_ would equal ('1', '2', '3', '4') $_=shift(@c); #Grab the next line of code.... $_=~s/(.{15}).*/\1/; #Chop off everything after 15 charachters. @w=split//; #Split up those 15 charachters into a 15 element array #and put into @w for(@_) # For each letter of the current line pulled from DATA... {$w[$s+15-$_]=(($w[$s]eq",")?".":$w[$s]); #Err, thats a big one. Remember, the closer the the viewer #you want that character to be, the closer together the #charachters that make up that plotted character have to #be. Also, I am trapping ','s here, because if one finds #its way into the jumble, it'll throw off the quoting and #ruin the script. Most people won't notice the difference #between the two when staring unless they know to look. I #would have preffered to use 'ell' and 'one', but cant use #them as quoting characters. $s++; #and go down the line one by one. } for(1..75){ #the images are 75 charachters wide. For each one... unless($w[$_]ne'') { #If no charachter was put there... $w[$_]=$w[($_-1)]; #put in a copy of the one to #the left } } print(join"",@w); # Print out our line we just made. print"\n"; #goto next line, Lather, rinse, repeat. } print@a; #Finally, print the __DATA__ label, and original DATA contents #### __DATA__ llllllllllllllllllllllllllllllllllllllllllllllllllllllllllll llllllllllllllllllllllllllllllllllllllllllllllllllllllllllll llllllllllllllllllllllllllllllllllllllllllllllllllllllllllll llllllllllllllllllllllll1111111lllllllllllllllllllllllllllll lllllllllllllllllll111111111111111111lllllllllllllllllllllll lllllllllllllllll1111111111111111111111lllllllllllllllllllll lllllllllllllll11111ll111111111111ll11111lllllllllllllllllll llllllllllllll111111ll111111111111ll111111llllllllllllllllll lllllllllllll1111111ll111111111111ll1111111lllllllllllllllll llllllllllll11111111ll111111111111ll11111111llllllllllllllll llllllllllll11111111ll111111111111ll11111111llllllllllllllll lllllllllll111111111ll111111111111ll111111111lllllllllllllll lllllllllll1111111111111111111111111111111111lllllllllllllll llllllllll1111l11111111111111111111111111l1111llllllllllllll lllllllllll111ll111111111111111111111111ll111lllllllllllllll lllllllllll1111ll1111111111111111111111ll1111lllllllllllllll llllllllllll1111ll11111111111111111111ll1111llllllllllllllll llllllllllll11111lll1111111111111111lll11111llllllllllllllll lllllllllllll11111lllll1111111111lllll11111lllllllllllllllll llllllllllllll111111llllllllllllllll111111llllllllllllllllll lllllllllllllll11111111llllllllll11111111lllllllllllllllllll lllllllllllllllll1111111111111111111111lllllllllllllllllllll lllllllllllllllllll111111111111111111lllllllllllllllllllllll llllllllllllllllllllllll1111111lllllllllllllllllllllllllllll llllllllllllllllllllllllllllllllllllllllllllllllllllllllllll llllllllllllllllllllllllllllllllllllllllllllllllllllllllllll llllllllllllllllllllllllllllllllllllllllllllllllllllllllllll