From owner-freebsd-questions@FreeBSD.ORG Wed Jun 30 17:49:31 2004 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1BC4116A4D7 for ; Wed, 30 Jun 2004 17:49:31 +0000 (GMT) Received: from ns1.tcbug.org (12-218-40-24.client.mchsi.com [12.218.40.24]) by mx1.FreeBSD.org (Postfix) with ESMTP id E431243D46 for ; Wed, 30 Jun 2004 17:49:30 +0000 (GMT) (envelope-from friar_josh@ns1.tcbug.org) Received: by ns1.tcbug.org (Postfix, from userid 1003) id A2E53BAE2; Wed, 30 Jun 2004 12:49:22 -0500 (CDT) Date: Wed, 30 Jun 2004 12:49:22 -0500 From: Josh Paetzel To: Drew Tomlinson Message-ID: <20040630174921.GA11187@ns1.tcbug.org> References: <40E2EF7E.3000901@mykitchentable.net> <4769.209.167.16.15.1088615085.squirrel@209.167.16.15> <40E2F5B9.305@mykitchentable.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <40E2F5B9.305@mykitchentable.net> User-Agent: Mutt/1.4.1i cc: FreeBSD Questions cc: Steve Bertrand Subject: Re: Perl Syntax X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Jun 2004 17:49:31 -0000 > >>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 > #!/usr/bin/perl -w if (!ARGV[0]) { print "no arguements\n"; } else { print "found an arguement\n"; } Josh Paetzel