Hi Anne,

Your script works (on my WinXP instance of ActivePerl anyway) when you replace the unix-style shebang line with the windoze equivalent, e.g.,

#!c:\perl\bin\perl.exe -w

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

Or, you can remove the shebang totally and run

perl anne-test.pl

Mark

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?



--
Mark Jordan
Head of Library Systems
W.A.C. Bennett Library, Simon Fraser University
Burnaby, British Columbia, V5A 1S6, Canada
Voice: 778.782.5753 / Fax: 778.782.3023 [EMAIL PROTECTED] / http://www.sfu.ca/~mjordan/

Reply via email to