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


in reply to Unquoted string "say" may clash with future reserved word

Hi,

you call the perl script with . hello.pl. That instructs your shell to take the commands from hello.pl and interpret them as shell commands.

The second part with say comes from the fact, that you have to enable the new (since 5.10) function 'say' with a proper use v5.14.0;

Best regards
McA

Replies are listed 'Best First'.
Re^2: Unquoted string "say" may clash with future reserved word
by topbanana (Novice) on Feb 26, 2013 at 16:18 UTC
    Hi McA Thanks, you have solved one of the two problems - getting "say" to work. The other problem - not being able to execute the script with "." still exists:
    ~/perl J-PC:J >cat hello.pl #!/usr/bin/perl use warnings; use v5.10.0; say "hello"; ~/perl J-PC:J >perl hello.pl hello ~/perl
    But I cannot execute the script with "." :
    J-PC:J >. hello.pl -bash: use: command not found -bash: use: command not found -bash: say: command not found ~/perl J-PC:J >
    I have added /usr/bin/perl to my $PATH variable, although I don't think that should be necessary because the script has /usr/bin/perl at the top of it. I have also put +x perms on the script.
    Update:
    =======
    I should say that I just tried running with "./hello.pl" rather than ". hello.pl" and it worked. IIRC using ". " i.e. dot space runs a command in a separate process (or summat...it's been a while)...but as far as I remember there's no reason why a command might run using "./<command>" rather than ".space<command>"
      You will never be able to execute the script with ".", since "." is a command to read a shell script -- not any generic script.

      (Just type "hello.pl" on the command line -- no ".".)

        I never knew that. Both issues are solved now.
        Many thanks.
        J
      The "." shell command doesn't do what you think it does. As McA says, it tells the shell to read commands from the supplied file. You're giving it a file full of perl commands. Think of it like talking to someone in a language they don't understand. That's not going to work except in the case of a strange perl file.