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


in reply to perl: we package API -- oneliner

In unix, creating a string in double quotes will cause interpolation of whatever the shell thinks are shell variables, e.g.

perl -we "$b=14; print $b" syntax error at -e line 1, near "=" Execution of -e aborted due to compilation errors.

or:

echo hello world perl -we "if($_=~/World/){print 111}" Unquoted string "world" may clash with future reserved word at -e line + 1. 111

Although your posted one-liner causes no complains in my linux/bash, maybe is not working as expected since $_ has a special meaning in bash (and possibly other shells): it is the last parameter of the last command (more special variables here: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_05_02)

So, Unquoted string "world" is caused by the interpolation of $_ by bash shell

bw, bliako