他の人はperlrunについて言及しています。B :: Deparseを使用すると、(ほとんどの場合)その意味を確認できます。
$ perl -MO=Deparse -p -e 1
LINE: while (defined($_ = <ARGV>)) {
'???';
}
continue {
die "-p destination: $!\n" unless print $_;
}
-e syntax OK
1は最適化されているため、「???」で表されます。
$ perl -MO=Deparse -p -i -e 1
BEGIN { $^I = ""; }
LINE: while (defined($_ = <ARGV>)) {
'???';
}
continue {
die "-p destination: $!\n" unless print $_;
}
-e syntax OK
-iは$ ^ Iを設定します。
$ perl -MO=Deparse -p -i.bak -e 1
BEGIN { $^I = ".bak"; }
LINE: while (defined($_ = <ARGV>)) {
'???';
}
continue {
die "-p destination: $!\n" unless print $_;
}
-e syntax OK
ただし、<ARGV>は2引数のオープンを使用するため、で始まるファイル名> <
や、で始まる/終了するファイル名は使用しないでください|
。