I seem to get the semicolon with your second case:
% perl5.6.1 -MO=Deparse -pe '$_=$.'
LINE: while (defined($_ = <ARGV>)) {
$_ = $.;
}
continue {
die "-p destination: $!\n" unless print $_;
}
% perl5.8.0 -MO=Deparse -pe '$_=$.'
LINE: while (defined($_ = <ARGV>)) {
$_ = $.;
}
continue {
die "-p destination: $!\n" unless print $_;
}
Update: Response to above update: with 5.00503 I get:
% perl5.00503 -MO=Deparse -pe '$_=$.'
LINE: while (defined($_ = <ARGV>)) {
$_ = $.
}
continue {
die "-p destination: $!\n" unless print $_;
}
-Blake