This is the code that does the head (and body) shrinking.
eval("seek\040DATA,0,0;"); # start of file foreach ( 1 .. 3 ) { <DATA>; } # skip 3 lines my @camel1hump; my $camel; my $Camel; # define stuff while (<DATA>) { $_ = sprintf( "%-69s", $_ ); # format line my @dromedary1 = split (//); # odd line if ( defined( $_ = <DATA> ) ) { @camel1hump = split (//); } # even line while (@dromedary1) { my $camel1hump = 0; my $CAMEL = 3; if ( defined( $_ = shift (@dromedary1) ) && /\S/ ) { $camel1hump += 1 << $CAMEL; } $CAMEL--; if ( defined( $_ = shift (@dromedary1) ) && /\S/ ) { $camel1hump += 1 << $CAMEL; } $CAMEL--; if ( defined( $_ = shift (@camel1hump) ) && /\S/ ) { $camel1hump += 1 << $CAMEL; } $CAMEL--; if ( defined( $_ = shift (@camel1hump) ) && /\S/ ) { $camel1hump += 1 << $CAMEL; ; } $camel .= ( split ( //, "\040..m`{/J\047\134}L^7FX" ) )[$camel1hump]; } $camel .= "\n"; }
Copyright © 2000-2001, Philippe "BooK" Bruhat.
Camel code, copyright © 2000, Stephen B. Jenkins.