print NEW if $_, join ' ', @{ $reformat{$_} } for keys %reformat;
####
$ perl -e 'my @x = qw{a b}; print if $_ for @x'
syntax error at -e line 1, near "$_ for "
Execution of -e aborted due to compilation errors.
####
next if $. == 1;
####
#!/usr/bin/env perl -l
use strict;
use warnings;
use autodie;
my $input_file = 'pm_1168253_reformat_input_INPUT.txt';
my $output_file = 'pm_1168253_reformat_input_OUTPUT.txt';
my %reformat;
my $re = qr{^(H\d+,\d+,)(.*)$};
{
open my $in_fh, '<', $input_file;
while (<$in_fh>) {
next if $. == 1;
chomp;
/$re/;
push @{ $reformat{$1} }, $2;
}
}
{
open my $out_fh, '>', $output_file;
print $out_fh $_, join ' ', @{ $reformat{$_} } for keys %reformat;
}
####
$ cat pm_1168253_reformat_input_INPUT.txt
ACCOUNT,DATE,NOTE
H123456,20151209,THIS IS A TEST
H123456,20151209,TO COMBINE ALL
H123456,20151209,MY MATCHING LINES
H123456,20151209,INTO THE FIRST LINE
H123456,20151209,THAT MATCHES.
H654321,20151209,MATCH LINES FOR THIS
H654321,20151209,ACCT INTO THE
H654321,20151209,TOP LINE OF THE ACCT
H432165,20151209,SINGLE LINE FOR THIS ONE
####
$ cat pm_1168253_reformat_input_OUTPUT.txt
cat: pm_1168253_reformat_input_OUTPUT.txt: No such file or directory
$ pm_1168253_reformat_input_WITH_FILES.pl
$ cat pm_1168253_reformat_input_OUTPUT.txt
H432165,20151209,SINGLE LINE FOR THIS ONE
H123456,20151209,THIS IS A TEST TO COMBINE ALL MY MATCHING LINES INTO THE FIRST LINE THAT MATCHES.
H654321,20151209,MATCH LINES FOR THIS ACCT INTO THE TOP LINE OF THE ACCT