in reply to advice for reading data from a file

Anonymous Monk,
Your approach seems fine if you only need to read the second line of each file, but you don't say if you will ever need to process the entire file. I am suggesting using Text::CSV_XS in that case, which also has the added bonus of properly handling imbedded delimiters if you run into that problem.
#!/usr/bin/perl -w use strict; use Text::CSV_XS; my @files = qw(foo bar blah asdf); for my $file ( @files ) { if ( File_Type( $file ) ) { print "Do something with $file\n"; } } sub File_Type { my $file = shift; open (INPUT , '<' , $file) or die "Unable to open $file for readin +g : $!"; my $csv = Text::CSV_XS->new( {'sep_char' => ';'} ); while ( <INPUT> ) { next if $. != 2; chomp; if ( $csv->parse($_) ) { my @field = $csv->fields; die 'Incorrect number of fields' if @field != 4; return $field[2] =~ /^\d+$/ ? 1 : 0; } else { print "Unable to parse: ", $csv->error_input, "\n"; return 0; } } }
I left most of your code intact as you probably have it that way for a reason.

Cheers - L~R

Replies are listed 'Best First'.
Re: Re: advice for reading data from a file
by Anonymous Monk on Jan 18, 2004 at 19:05 UTC
    thanks for your answer limbic-region,

    but here i just need to process the 2 nd line, so i didn't want to fire-up Text::CSV_XS just for that :)