perlquestion
noobee
Hi Folks,
I have a text file as below:<br>
<code>
asdsadsd
/*
asds
wqeoiywe
qwe
qwewewe
oooooo
sadssdsa
</code></br>
In order to process the above kind of text file, I wrote the following code:<br>
<code>
#!/usr/bin/perl
use warnings;
use strict;
package main;
my $file = './test_file';
my $line = inFile->new($file);
print $line->getLine();
package inFile;
sub new {
my $class = shift;
my $self = {
fname => shift,
fp => undef,
lineno => 0,
buff => []
};
my $fname = $self->{fname};
open($self->{fp},"< $fname") || die "failed to open the file $fname ($!)\n";
bless $self, $class;
}
sub getLine {
my ($self) = @_;
my $fp = $self->{fp};
my $buf = $self->{buff};
if (@{$buf}) {
$self->{lineno}++;
return shift @{$buf};
}
my $line;
while ($line = <$fp>) {
$self->{lineno}++;
chomp $line;
next if $line =~ /^\s*$/;
return $line;
}
return undef;
}
</code></br>
When I execute the above code, the result I get is only the first line <br>
<code>asdsadsd</code></br>
But what I want to do is process the whole file and print each of the lines.
Can you please point out what I am doing wrong?
<br>
--Jessica