http://www.perlmonks.org?node_id=657585

noobee has asked for the wisdom of the Perl Monks concerning the following question:

Hi Folks, I have a text file as below:
asdsadsd /* asds wqeoiywe qwe qwewewe oooooo sadssdsa

In order to process the above kind of text file, I wrote the following 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; }

When I execute the above code, the result I get is only the first line
asdsadsd
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?
--Jessica