What is the difference between the perl -n
and perl -p
options?
What is a simple example to demonstrate the difference?
How do you decide which one to use?
How do you decide which one to use?
You use -p
if you want to automatically print the contents of $_
at the end of each iteration of the implied while
loop. You use -n
if you don't want to print $_
automatically.
An example of -p
. Adding line numbers to a file:
$ perl -pe '$_ = "$.: $_"' your_file.txt
An example of -n
. A basic grep
replacement.
$ perl -ne 'print if /some search text/' your_file.txt
-p
is short for -np
, and it causes $_
to be printed for each pass of the loop created by -n
.
perl -ne'...'
executes the following program:
LINE: while (<>) {
...
}
while
perl -pe'...'
executes the following program:
LINE: while (<>) {
...
}
continue {
die "-p destination: $!\n" unless print $_;
}
See perlrun for documentation about perl
's command-line options.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With