http://qs321.pair.com?node_id=515519

A year and a half into mucking around with the -nep flags I still get confused or flustered when I cook up one liners (often basic search/replace one liners), especially because I often find myself switching from unix to dos. Going through the following exercises on my (unix) console helped reduce my confusion quite a bit, and I think doing this earlier on would have helped me, so I'm posting to here, hoping to help newer monks who experience brain melt reading perlrun. Since the audience is people new to perl, I also included some examples of basic regex substitution from the command line, since I think this is something a lot of people want to do early on.
linux4:/home/thomas/learning # perl -e No code specified for -e. linux4:/home/thomas/learning # perl -e '#execute um' linux4:/home/thomas/learning # linux4:/home/thomas/learning # perl -e 'print "hello world" #execute u +m' hello worldlinux4:/home/thomas/learning # hello worldlinux4:/home/thomas/learning # perl -e 'print "hello world\ +n"' hello world linux4:/home/thomas/learning # linux4:/home/thomas/learning # perl -e "print qq(hello world\n) #same, + but dos compatible quoting (dos no like um single quotes)" hello world linux4:/home/thomas/learning # perl -ne '#read um from the console and + execute um (but nothing to execute here)' a << Type this into the console and hit return b c << End the console input with ctrl-d!) linux4:/home/thomas/learning # perl -pe '#read um and print um' a << This gets typed into the console a << This gets printed out b b c c linux4:/home/thomas/learning # perl -pe '$_ = "a\n" #read um, reset $_ +, and print um' a a b a c a linux4:/home/thomas/learning # perl -ne 'print $_ #read um and print u +m by executing um' a a b b c c linux4:/home/thomas/learning # perl -ne 'print #read um and print um b +y executing um with the default variable to print' a a b b c c linux4:/home/thomas/learning # perl -pe 's/b/a/ #substitute um, just u +m first b' aa aa bb ab cc cc linux4:/home/thomas/learning # perl -pe '$_ =~ s/b/a/ #Same as the fir +st s/// example but more verbose, explicitly giving the default argum +ents to s///' aa aa bb ab cc cc linux4:/home/thomas/learning # perl -ne 's/b/a/; print #Same thing usi +ng -n instead of -p' aa aa bb ab cc cc linux4:/home/thomas/learning # perl -ne '$_ =~ s/b/a/; print $_ #Same +thing more verbosely' aa aa bb ab cc cc linux4:/home/thomas/learning # perl -pe 's/b/a/g #substitute um, all u +m bs' aa aa bb aa cc cc linux4:/home/thomas/learning # perl -pe 's/./a/g #substitute um, all u +m, all um um!' aa aa bb aa cc aa all um um aaaaaaaaa linux4:/home/thomas/learning # perl -ane 'print "$F[0]$F[4]\n" #autosp +lit mode, print the first and fifth fields (zero-indexed)' a b c d e ae f g h j i j k l m fi linux4:/home/thomas/learning # perl -ape '$_ = "$F[0]$F[4]\n" #same t +hing using -p' a b c d e ae linux4:/home/thomas/learning # perl -ane 'print "$G[0]$G[4]\n" #no mag +ic unless you name the array @F' a b c d e linux4:/home/thomas/learning # perl -ape '$_ = join (" ", @F)' a b c d e a b c d e
This is obviously a very basic intro that doesn't cover a lot of the possibilities, but I hope it will be of help. Monks seeking more enlightenment are encouraged to visit the award winning Perl White Magic - Special Variables and Command Line Switches. Also recommended is What one-liners do people actually use?, which inspired me to write this in the first place.

Ideas on how to improve / expend this post are welcome and will be integrated.