>>572
systemを使ってよければこんなのでもできる。一応1行(わら
system(qq[perl -i~ -ne "\$.==$n or print" "$filename"]);

# Windowsだとshellの関係で動かないかも?

$^Iをいたずらするという手は危険すぎるかな。
{
local ($^I) = ''; # バックアップを残したければ'.bak'とか'~'とか……
local (@ARGV) = ($filename);
$. == $n || print while <>;
}
うまくいかんかった。local(*ARGVOUT, *ARGV)とか入れてみたんだが。