Hi

First of all, if you didn't get it to work:

  The "\n" should NOT be converted to "\r\n" (although
  converting " \n" to "\r\n" should be possible).
  
  It looks best on a large tty (alt. line-printer)
  (the size of the image is 117 rows and 129 columns).

The bender.pl script-file is an encoding of another script, and
the bender.pl decodes itself (using line-length --> char mapping),
and eval's the decoded script.

To read the decoded script, try

   perl -pe 's/eval; /print;/' bender.pl > printbend.pl
   perl printbend.pl > bended.pl

Stop reading, study bended.pl, and continue later...

(blank lines and form-feeds inserted instead of using rot13)



















Stop reading, study bended.pl, and continue later...
























The script bended.pl is also below the 1kB limit "not including whitespace"
(at least when you count [\n\t\0240\040] as whitespace).

The bended.pl reads the DATA (same as @F[23..]), where each line is encoded as
chr(x+32) where x is length of a sequence of characters (toggles between all '#'
and all ' ') (obfuscations exceptions: TAB, NBSP and '"' actually means '!', '"' and "'" resp).

Each line is padded with ' ' and rotated into @@. @@ is italicificated and printed

format =
@<<<<<<...<<
$_
.

;
$=-=$=;				# $FORMAT_LINES_PER_PAGE=0;

				# remember @F from bender.pl?
foreach ( @F[23..$#F] ) {	# may be replaced with: while(<DATA>) {

    $:=chop($=chop),           # $FORMAT_LINE_BREAK_CHARACTERS="\n"; 
                                # $NBSP=''
    tr^	"^!"'^;                # [\t\0240"] [!"']

				# foreach ch on the line, $NBSP.= $x x (32-ord(ch))
				# where $x toggles between ' ' and '#'

    map $.= (' ','#')[$-++%2]x -(ord(' ')-ord), split //;

				# pad $NBSP
    $.=' ' x (117-length($));

    grep($@[$=++].=$_,split //,$); # rotate line

    $=+=-$=			# $FORMAT_LINES_PER_PAGE=0
};
$-%=$-;				# $FORMAT_LINES_LEFT=1

for ( reverse @@ ){;
				# $SUBSEP='$^/'; $FORMAT_TOP_NAME=' ' x makeitalic($lineno) # :-)
    $^= ' ' x  abs int( $- /length($;='$^/'))-7;

    $->23 || $;=~tr		# $FORMAT_LINES_LEFT>23 || $SUBSEP=~tr [;\n    $/^] ['^$++/^$]; 
};				# i.e. $SUBSEP='/$^' if $FORMAT_LINES_LEFT > 23
$/^}'^${++/^$};
    eval"s/^$;/";		# s/^$^/;/ or s/^/$^/
				# i.e. either add or remove some white space to make italic
    $-=++$-- -1;		# $FORMAT_LINES_LEFT += 2
    $-==11 && s/(.{43})./$1o/;  # insert eye
    write
}
__DATA__
