in reply to Re: Feed ARGV into one-liner
in thread Feed ARGV into one-liner

Can you explain this please? In particular what does B';$'F=shift do? It's melting my head.... thanks

Replies are listed 'Best First'.
Re^3: Feed ARGV into one-liner
by ikegami (Patriarch) on Jan 22, 2010 at 10:25 UTC
    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