asdsadsd /* asds wqeoiywe qwe qwewewe oooooo sadssdsa #### #!/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; }