use strict; use warnings; use autodie; use Getopt::Long; use File::Slurp qw( read_file write_file ); use List::MoreUtils 'pairwise'; use constant { EMPTY => q{}, FILE1 => 'e:/File1.txt', FILE2 => 'e:/File2.txt' }; my $LIVE = EMPTY; GetOptions('live' => \$LIVE); write_file $LIVE ? FILE2 : \*STDOUT, pairwise { join( ',', map{$_//EMPTY} $a,$b ) . "\n"; } @{slurp(FILE1)}, @{slurp(FILE2)}; sub slurp { read_file shift, array_ref=> 1, chomp => 1 }