https://blogs.oracle.com/ksplice/entry/the_top_10_tricks_of

可以使用以下方法来调用$’

perl -ne $'print $\' if /^root/' /etc/passwd

利用ENV声明来实现单引号双引号的转义

kk@R61e:~$ env re="['\"]" perl -lne '@F=split/$ENV{re}/,$_; printf "%02d %s\n", $a++ , @F[1] if /^menu/' /boot/grub/grub.cfg 
00 Ubuntu, with Linux 3.2.0-53-generic
01 Ubuntu, with Linux 3.2.0-53-generic (recovery mode)
02 Ubuntu, with Linux 3.2.0-52-generic
03 Ubuntu, with Linux 3.2.0-52-generic (recovery mode)
04 Memory test (memtest86+)
05 Memory test (memtest86+, serial console 115200)
06 Microsoft Windows XP Professional (on /dev/sda1)
#原来原始数据中,会出现“和',这个在1line实现是比较麻烦的。不可以使用-F'[foobar]'
kk@R61e:~$ perl -ne 'printf "%02d %s", $a++, $_ if /^menu/ ' /boot/grub/grub.cfg 
00 menuentry 'Ubuntu, with Linux 3.2.0-53-generic' --class ubuntu --class gnu-linux --class gnu --class os {
01 menuentry 'Ubuntu, with Linux 3.2.0-53-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
02 menuentry 'Ubuntu, with Linux 3.2.0-52-generic' --class ubuntu --class gnu-linux --class gnu --class os {
03 menuentry 'Ubuntu, with Linux 3.2.0-52-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
04 menuentry "Memory test (memtest86+)" {
05 menuentry "Memory test (memtest86+, serial console 115200)" {
06 menuentry "Microsoft Windows XP Professional (on /dev/sda1)" --class windows --class os {

Printing large numbers with commas

sub commify_digits {
  local($_)= shift;
  s/(\d)(?=(\d{3})+$)/$1,/g;
  return $_;
}