in reply to Feed ARGV into one-liner

Don't underestimate the power of command line switches:
perl -MB';$'F=shift -ane '$F[1]=~$F&&'print -- Vet TEST.txt

Replies are listed 'Best First'.
Re^2: Feed ARGV into one-liner
by fod (Friar) on Jan 22, 2010 at 09:59 UTC
    Can you explain this please? In particular what does B';$'F=shift do? It's melting my head.... thanks
      Shell literal
      -MB';$'F=shift
      produces the arg
      -MB;$F=shift
      You're probably familiar with -M. It used to load a module. It does so by inserting
      use MODULENAME;
      into the source. In this case, MODULENAME is B;$F=shift, so
      use B;$F=shift;
      is inserted into the source. B is a core module. It's not being used at all by the program. The only purpose to load it is to execute $F=shift; before the -n loop with very few keystrokes. The following would also work; it's just not nearly as short:
      '-MData::Dumper; $F=shift'
        Ah very clever. Very... lateral

        Thank you