Другие упоминали 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
Но помните, использует открытие с двумя аргументами, поэтому не используйте имена файлов, начинающиеся с > <
или начало / конец с |
.