sub f { my $pos = tell(DATA); while () { # Assigns to $_, but $_ is aliased to 1. print; } seek(DATA, $pos, 0); } # sub f { # my $pos = tell(DATA); # while (defined(my $line = )) { # print $line; # } # seek(DATA, $pos, 0); # } f() for 1,2,3; __DATA__ a b c