Perl Syntax

Drew Tomlinson drew at mykitchentable.net
Wed Jun 30 10:18:11 PDT 2004


On 6/30/2004 10:04 AM Steve Bertrand wrote:

>>I'm using perl 5.8.4 on a 4.9 machine.  I want to add code a perl script
>>to check for value passed from command line.  If it is null, I want to
>>exit with an error message.
>>
>>First I tried this and got "Use of uninitialized value in string eq at
>>./test.pl line 20."
>>
>>if ($ARGV[0] eq "") {
>>  print "You must include the file name.";
>>  exit 1;
>>}
>>
>>Next I tried this but get "Use of uninitialized value in length at
>>./test.pl line 20."
>>
>>if (length ($ARGV[0]) = "0") {
>>  print "You must include the file name.";
>>  exit 1;
>>}
>>
>>I've searched the web and all examples that I've found indicate that I'm
>>doing things correctly but obviously I'm not.  What am I doing wrong?
>>
>>    
>>
>
>I know this works:
>
>if ($ARGV[0] eq '') {
>        print "Debug Mode\n";
>}
>
>Cheers,
>
>Steve
>
Thanks for your reply.  I tried your suggestion and it seems to work but 
I get this output:

Use of uninitialized value in string eq at ./test.pl line 16.
You must include the file name.

I have "use warnings;" and "use strict;" in the script.  I assume the 
error comes from the "use warnings;" but why does perl see "eq" as a 
string and not an operator?  Or am I misinterpreting the message?

Thanks,

Drew

-- 
Visit The Alchemist's Warehouse
Magic Tricks, DVDs, Videos, Books, & More!

http://www.alchemistswarehouse.com



More information about the freebsd-questions mailing list