From owner-freebsd-questions Sun Sep 3 12: 4:18 2000 Delivered-To: freebsd-questions@freebsd.org Received: from snoopy.brwn.org (intgw1.brwn.org [196.28.127.66]) by hub.freebsd.org (Postfix) with ESMTP id F3C3D37B42C; Sun, 3 Sep 2000 12:04:11 -0700 (PDT) Received: by snoopy.brwn.org (Postfix, from userid 1001) id 4476D1D8F; Sun, 3 Sep 2000 21:04:02 +0200 (SAST) Date: Sun, 3 Sep 2000 21:04:01 +0200 From: Willem Brown To: Mark Ovens Cc: questions@freebsd.org Subject: Re: perl(1) question Message-ID: <20000903210401.A42226@snoopy.brwn.org> References: <20000903190409.B255@parish> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit User-Agent: Mutt/1.2i In-Reply-To: <20000903190409.B255@parish>; from marko@freebsd.org on Sun, Sep 03, 2000 at 07:04:09PM +0100 X-Public-Key: http://willem.brwn.org/pubkey.txt X-Chat-Server: http://chat.brwn.org/ Sender: owner-freebsd-questions@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Hi, It would seem that the string index searches for is not a regular expression. The following changes seems to work when I tried it. $i = index(uc $line, "FOO"); Basically, convert the word to all uppercase and then check the line. line=Foobar i = 0 line= Foobar i = 1 line= foobar i = 2 line= FOOBAR i = 3 line= foOBar i = 8 On Sun, Sep 03, 2000 at 07:04:09PM +0100, Mark Ovens wrote: > Does index() ignore leading whitespace? A perl(1) script I have > appears to be doing just that. Isolating the relevant lines I have: > > #!/usr/bin/perl -w > > open 'CONTENTS',"/usr/mark/scrap" or die "cannot open /usr/mark/scrap"; > > until (eof 'CONTENTS') { > chomp ($line = ); > $i = index($line, /FOO/i); > print "line\=$line\n"; > print "i \= $i\n"; > }; > > close 'CONTENTS'; > > Running this on a file containing: > > Foobar > Foobar > foobar > FOOBAR > foOBar > > I get: > > # ./scrap.pl scrap > Use of uninitialized value at ./scrap.pl line 7, chunk 1. > line=Foobar > i = 0 > Use of uninitialized value at ./scrap.pl line 7, chunk 2. > line= Foobar > i = 0 > Use of uninitialized value at ./scrap.pl line 7, chunk 3. > line= foobar > i = 0 > Use of uninitialized value at ./scrap.pl line 7, chunk 4. > line= FOOBAR > i = 0 > Use of uninitialized value at ./scrap.pl line 7, chunk 5. > line= foOBar > i = 0 > # > > So index() appears to be ignoring the leading whitespace because it > always returns 0. > > Also, what causes the "Use of uninitialized value...." warning? I > cannot see anything wrong with the script. I've checked Learning Perl > by Schwartx and Christiansen and the perl manpages; also the code is > taken from the original script which doesn't give this warning. > > Any pointers would be greatly appreciated. > > TIA > > -- > 4.4 - The number of the Beastie > ________________________________________________________________ > 51.44°N FreeBSD - The Power To Serve http://www.freebsd.org > 2.057°W My Webpage http://ukug.uk.freebsd.org/~mark > mailto:marko@freebsd.org http://www.radan.com > > > > To Unsubscribe: send mail to majordomo@FreeBSD.org > with "unsubscribe freebsd-questions" in the body of the message > Best Regards Willem Brown -- /* =============================================================== */ /* Linux, FreeBSD, NetBSD, OpenBSD. The choice is yours. */ /* =============================================================== */ Speak softly and own a big, mean doberman. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-questions" in the body of the message