in reply to Why isn't this simple method to join elements of 2 arrays not working
Just for fun...
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 }
By default this will dump its output to STDOUT. Once you're certain it will do what you want, run it with the --live flag, and it will overwrite FILE2, which seems to be what you want. I'd probably use copies of the original files until I'm certain.
Updated: Handle command-line option via Getopt::Long rather than @ARGV.
Dave
|
|---|