How do I best get it to take everything following the header:
Or if you don't mind loading the entire input file into memory:<$fh_in>; # Skip header print $fh_out $_ while <$fh_in>;
<$fh_in>; # Skip header { local $/; print { $fh_out } <$fh_in>; }
By the way, '.' indicates the current directory, so there's no need to load Cwd.
By the way, $_ != /\.ktf$/ makes no sense. You probably meant $_ !~ /\.ktf$/ (long for !/\.ktf$/). But isn't that inverted? I think you want /\.ktf$/ (short for $_ =~ /\.ktf$/).
So you get:
use strict; use warnings; use File::Find qw( find ) open(my $fh_out, '>', 'D:\\mergedfile.ktf') or die("Can't create output file \"D:\\mergedfile.ktf\": $!\n"); my $first = 1; find(sub { return if !/\.ktf\z/; print("$File::Find::name\n"); open(my $fh_in, '<', $File::Find::name) or die("Can't open file \"$File::Find::name\": $!\n"); <$fh_in> if !$first; $first = 0; print $fh_out $_ while <$fh_in>; }, '.');
In reply to Re: Match multiple lines
by ikegami
in thread Match multiple lines
by WeeDie
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |