my @buffer=(); sub read_a_line { if (@buffer) { return shift @buffer; } else { my $x= ; return $x; } } sub push_back_line { push @buffer, @_; }