perl one-liner

Abigail abigail at abigail.be
Sun Jul 20 00:43:18 BST 2008


On Sat, Jul 19, 2008 at 07:16:40PM +0100, A Smith wrote:
> I was trying the Perl one liner below but it complains about an *unrecognized
> switch*. despite this the value is passed into the code.  I was trying to
> avoid a full script file with a getopts and its baggage.
> perl -s -e "print $oldage;" -oldage=abc

The value isn't passed to the code when I try it. In fact, it doesn't
even run:

   $ perl -s -le 'print $oldage' -oldage=abc
   Unrecognized switch: -oldage=abc  (-h will show valid options).
   $


> Anyone got an idea what will work.


The problem here is that it's perl that will process the -oldage=abc switch,
not the Perl program. To have it work, you first have to tell perl to stop
looking for switches, using the standard -- trick:


   $ perl -s -le 'print $oldage' -- -oldage=abc
   abc
   $



Abigail


More information about the london.pm mailing list