Date: Sun, 3 Sep 2000 21:04:01 +0200 From: Willem Brown <willem@brwn.org> To: Mark Ovens <marko@freebsd.org> Cc: questions@freebsd.org Subject: Re: perl(1) question Message-ID: <20000903210401.A42226@snoopy.brwn.org> In-Reply-To: <20000903190409.B255@parish>; from marko@freebsd.org on Sun, Sep 03, 2000 at 07:04:09PM %2B0100 References: <20000903190409.B255@parish>
next in thread | previous in thread | raw e-mail | index | archive | help
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 = <CONTENTS>);
> $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, <CONTENTS> chunk 1.
> line=Foobar
> i = 0
> Use of uninitialized value at ./scrap.pl line 7, <CONTENTS> chunk 2.
> line= Foobar
> i = 0
> Use of uninitialized value at ./scrap.pl line 7, <CONTENTS> chunk 3.
> line= foobar
> i = 0
> Use of uninitialized value at ./scrap.pl line 7, <CONTENTS> chunk 4.
> line= FOOBAR
> i = 0
> Use of uninitialized value at ./scrap.pl line 7, <CONTENTS> 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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000903210401.A42226>
