http://www.perlmonks.org?node_id=822549

unixguy has asked for the wisdom of the Perl Monks concerning the following question:

Hi, I am trying to get the first character in a line, if line has -e, its not working any help to fix this? look at the 2nd example.
1. $ echo "ella" |perl -lane 'print substr($_,0,1)' e 2. $ echo "-e" |perl -lane 'print substr($_,0,1)'
Thanks

Replies are listed 'Best First'.
Re: perl problem with input line -e
by rubasov (Friar) on Feb 11, 2010 at 00:43 UTC
    There is nothing wrong with your perl one-liner, your usage of echo is what misleads you. Try echo "-e" alone and see that it prints only a newline. That is because echo interprets your "-e" as on option, not a string to print.

    Try this instead: printf -- "-e\n"

    The '--' signifies the end of options, anything follows that will be interpreted as an argument to print. This is the common unix way to use an argument that looks like an option.