thulben@bravo:~/perl 125> perl -le 'print "A" ^ "C"' | perl -nle 'print $_^"C"' A thulben@bravo:~/perl 126> perl -le 'print "A" ^ "C"' | perl -nle 'print $_^"A"' C thulben@bravo:~/perl 127> #### use warnings; use strict; my $cipher = shift; my $key = shift; open( my $cipher_fh, $cipher ) or die $!; open( my $key_fh, $key ) or die $!; my $buffer_length = 4_096; while ( sysread( $cipher_fh, my $cipher_text, $buffer_length, ) && sysread( $key_fh, my $key_text, $buffer_length, ) ) { print $cipher_text ^ $key_text; }