Date: Sun, 3 Sep 2000 22:05:03 +0100 From: Mark Ovens <marko@freebsd.org> To: Willem Brown <willem@brwn.org> Cc: ben@freebsd.org, questions@freebsd.org Subject: Re: perl(1) question Message-ID: <20000903220503.A254@parish> In-Reply-To: <20000903210401.A42226@snoopy.brwn.org>; from willem@brwn.org on Sun, Sep 03, 2000 at 09:04:01PM %2B0200 References: <20000903190409.B255@parish> <20000903210401.A42226@snoopy.brwn.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Sep 03, 2000 at 09:04:01PM +0200, Willem Brown wrote:
> Hi,
>
> It would seem that the string index searches for is not a regular
> expression.
>
That was it (thanks to ben who also spotted it). My main source of
reference is Learning Perl (Schwartz & Christiansen) which says (p.153) about
index():
"Notice that both the string being searched and the string
being searched for can be a literal string, a scalar variable
containing a string, or even an expression that has a string
value."
Obviously "expression" does not include "regular expression", which I
assumed it did.
Thanks for the help guys.
> 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.
--
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000903220503.A254>
