For Quality purpouses, LoneWolf 's mail on Friday 06 February 2004 16:57 may
have been monitored or recorded as:
> I've been working with this since wolf and jeff and john sent me some
> stuff, I think I actually based everything on wolf's code excerpts. I'm
> sure my final code is going to not be perfect, but at least I have the
> piece of mind of knowing that I can get this thing some better then it was.
> I'm still not sure on making it a sub that I can use on anything, but I'll
> deal with that issue another day.
easy: (notice: thats the same script as priviously but has the parse in a
sub:)
---snip---
#!/usr/bin/perl
use strict;
use warnings;
my (@fields, $lng);
sub whatever {
if (@_) {
foreach my $infile (@_) {
� my ($i,$rec);
� open INFILE, "$infile" or die "Can't open $infile: $!";
� open OUTFILE, "${infile}.out" or die "Can't open ${infile}.out at home:
$!";
� while (<INFILE>) {
� �$rec++;
� �chomp;
� [EMAIL PROTECTED] = split /\s*\|\s*/, $_;
� �$fields[0] =~ s/^\s+//;
� �#there is probably a way to get rid of the trailing spaces in the first
entry using split,I just couldnt think of any.
� �$lng = @fields unless $lng; #set $lng for first record
� �print "The following record: $i has ", scalar @fields, " fields as compared
to $lng fields in the first record! Skip. : $_\n" and next unless $lng ==
@fields;
#poor quality control of your input data: check if all reords have the same
number of fields or skip and print record otherwise.
� �$i++;
� �print OUTFILE $i;
� �print OUTFILE "|$_" foreach (@fields);
� �print OUTFILE "|$fields[0]\n"; #your trailing ID
� }
� close INFILE;
� close OUTFILE;
� print "Read $rec records from ./sql/$infile and printed $i into ./
${infile}.out\n";
} #end foreach
return 1;
}
else {return undef;}
} #end sub whatever
---snap---
call it with &whatever('path/to/firstfile', 'path/to/secondfile',...)
Enjoy, Wolf
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>