Amit Saxena wrote:
>
> On Mon, Jul 14, 2008 at 8:23 PM, vikingy <[EMAIL PROTECTED]> wrote:
>
>> There is a file created likes this:
>>
>> open File ">file.txt" or die $!;
>> foreach .. <..> {
>> printf File "%5d %11.2f\n", $data1,data2;
>> }
>> close File;
>>
>> and my question is, how to read these data follow the same format as "%5d
>> %11.2f' from this file again?
>> thanks in advance!
>
> #! /usr/bin/perl
>
> use warnings;
> use strict;
>
> open (PTR1, "<filename.txt") or die "Unable to open file filename.txt :
> $!\n\n";
>
> while (chomp ($str = <PTR1>))
That will exit the loop if an empty line is encountered before the end of the
file, and will throw a warning at the end of the file because of chomp having an
uninitialized value
while (my $str = <PTR1>) {
chomp $str;
:
}
> {
> sscanf($str, "%5d %11.2f", $data1, $data2);
>
> # do whatever processing.....
> }
>
> close (PTR1);
There is really no point in forcing a format onto the incoming data lines. If
there's a need to validate the format of the records then regular expressions
are the tool to use.
while (<PTR1>) {
my ($data1, $data2) = split;
}
is all that is needed.
HTH,
Rob
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/