my @q[0..1] = ( "\n" x 2); # other initialization may be apropos
while (1) {
@q[0..1] = ($q[1], scalar( ));
last if not defined $q[1];
# previous line is $q[0]
# currentline is $q[1]
do_something(\@q);
}
# current line, the last line is now in $q[0]
####
# handle last line in loop
if ( not defined $q[1] ) {
$q[1] = $q[0];
$q[0] = "\n";
do_something( \@q);
last;
}