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
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.