I recently came up with a couple of pipeable perl one-liners. perl -pechop
is a shortened form of perl -p -e chop
. Here are the parts of it, explained:
perl
– the perl executable, here for completeness. to learn about the options, typeman perlrun
into your terminal.-p
– perl assumes a loop around the program where it reads each line from the standard input and prints the output. since it’s a single character option that doesn’t take a parameter, it can be grouped with other options.-e
– evaluates (runs) the string that’s passed to it. the way perl’s option parser works, when an option takes data, it uses the rest of the command line parameter. so it can be shortened fromperl -p -e chop
toperl -pechop
. This makes it short enough that typing it in often shouldn’t be a problem.chop
– the perl subroutinechop
takes the current input and chops the last character off it. It’s handy for chopping the newline. For examplepwd | perl -pechop
will print the current directory to standard output. It can then be piped to the command to save the current directory to the clipboard (pbcopy
on mac os x.
Another perl subroutine, chomp
, removes the last character of a line but only if it’s the newline character. It’s useful when you don’t know if there’s a newline. The corresponding perl one-liner is perl -pechomp
.