@dromedary1 and @camel1hump hold the individual characters of two successive lines.
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]; # ..m`{/J ' \ }L^7FX }
Copyright © 2000-2001, Philippe "BooK" Bruhat.
Camel code, copyright © 2000, Stephen B. Jenkins.