I think shift applies to an array, not to an argument.

Try

#!/usr/local/ActivePerl-5.8/bin/perl -w

my $test = $ARGV[0] ;
print "$test\n";

to read the first argument (hello) from the array ARGV


Sincerely,

Arno H.P. Reuser
CEO, Reuser's Information Services
KvK 2731 2325
----
http://www.reuser.biz
[EMAIL PROTECTED]



Anne L. Highsmith wrote:
(Sorry if this is a duplicate. But I didn't see my first message distributed, 
so I'm re-sending from another address)

This is REALLY embarrassing.
After a loooooooooong  hiatus, I need to go back to using activestate perl on 
my pc to do some work.  I don't know whether it's me or my PC or the phase of 
the moon, but I can't get my program to recognize command line arguments.  I 
backed off to the simplest program, i.e.
---------------------------------------------------------------
#!/usr/local/ActivePerl-5.8/bin/perl -w

my $test = shift;
print "$test\n";
----------------------------------------------------------------

and I invoke it from the dos window command line as:

C:\Perl\apps\urls>test.pl Hello

and I get:

Use of uninitialized value in concatenation (.) or string at 
C:\Perl\apps\urls\test.pl line 4.

What the HECK am I doing wrong? I've tried enclosing the command line arguments 
in single quotes, double quotes and rubber galoshes, but I get the same 
response.
I tried changing "my $test = shift;" to "my $test = $ARGV[0];".  I copied the 
program back to my unix box, with just a change of the shebang line, and it works fine.

When I hardcode the 'Hello' it works fine.

I figure this has to be excruciatingly simple, but I can't see it. Help?


Reply via email to