in reply to Re^3: skip junk lines in csv before header
in thread skip junk lines in csv before header
It occurs to me that there might be a use for a do-block. If no 'fieldname' string is present in the file, <$fh> will read to the end of the file. This will be a valid read. If the data of the read is returned as from a do-block, it can be tested to determine if a header was actually present. (The data could be returned from a "naked" block, but using a do-block is neater IMHO.)
Win8 Strawberry 5.8.9.5 (32) Thu 07/28/2022 11:22:44 C:\@Work\Perl\monks >perl use strict; use warnings; use Data::Dump qw(dd); use constant FIELDNAME => 'fieldname'; open my $fh, '<', \<<END or die; no valid header present value1,value2 END my $got_header = do { local $/ = FIELDNAME; <$fh>; }; dd $got_header; # for debug $got_header =~ m{ \Q${ \FIELDNAME }\E \z }xms or die "no header"; my $header_line = FIELDNAME . <$fh>; # complete the line # and so on... ^Z "no valid header present\nvalue1,value2\n" no header at - line 16, <$fh> line 1.
Give a man a fish: <%-{-{-{-<
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^5: skip junk lines in csv before header
by LanX (Saint) on Jul 28, 2022 at 15:45 UTC |