[Chicago-talk] Bareword found where operator expected
Richard Reina
richard at rushlogistics.com
Mon Mar 8 06:12:41 PST 2010
Alexander,
Thank you very much for your reply. Your explanation was helpful and necessary as I have a lot to learn as a perl programmer.
Thanks again.
---- Chicago.pm chatter <chicago-talk at pm.org> wrote:
>
> Your quoting is not working as you expect. Don't feel bad -- everybody goes
> through this at some point. You are going through several levels of
> interpretation. At the first level, the single quotes are within double
> quotes, and therefore the single quotes have no special meaning. Since the
> single quotes are not giving you any protection, the next double quote DOES
> have special meaning -- it is the end of the quoted string. Therefore, the
> word "Hello" is not within a quoted string; so the compiler is trying to
> interpret it as something that could possibly stand alone, i.e. a
> "bareword".
>
> Shield the internal quotation marks with backslashes. Furthermore, although
> "\n" will work as it stands, it does so for the wrong reason; I recommend
> you escape the backslash by using double backslash, like this: "\\n".
>
> Alexander Danel
>
> -----Original Message-----
> From: chicago-talk-bounces+danel=speakeasy.net at pm.org
> [mailto:chicago-talk-bounces+danel=speakeasy.net at pm.org] On Behalf Of
> Richard Reina
> Sent: Monday, March 08, 2010 7:28 AM
> To: chicago-talk at pm.org
> Subject: [Chicago-talk] Bareword found where operator expected
>
> I was hoping someone might help me figure out why this simple three line
> program won't work.
>
> If I do:
>
> #!/usr/bin/perl -w
>
> use strict;
> system("gnome-terminal -x perl -e 'print "Hello World\n"; sleep 4;'");
>
> I get:
>
> Bareword found where operator expected at test.pl line 5, near
> ""gnome-terminal -x perl -e 'print "Hello"
> (Missing operator before Hello?)
> String found where operator expected at test.pl line 5, near "n"; sleep
> 4;'""
> syntax error at test.pl line 5, near ""gnome-terminal -x perl -e 'print
> "Hello World"
> Execution of test.pl aborted due to compilation errors.
>
>
> What is especially confusing to me is that if I type in:
>
> gnome-terminal -x perl -e 'print "Hello World\n"; sleep 4;
>
> at the command line, it works. I am running linux.
>
> Any help would be greatly appreciated.
>
> Richard
> _______________________________________________
> Chicago-talk mailing list
> Chicago-talk at pm.org
> http://mail.pm.org/mailman/listinfo/chicago-talk
>
> _______________________________________________
> Chicago-talk mailing list
> Chicago-talk at pm.org
> http://mail.pm.org/mailman/listinfo/chicago-talk
>
More information about the Chicago-talk
mailing list