in reply to Bad Regex

++ to the above suggestions, apart from the irrelevant anonymous reply.

More generally, however, apart from presentation problems, you should heed the advice constantly repeated on this site by Monks far more experienced than you (or me :-). _Always_:

use strict; use warnings;

Adding these two lines at the beginning of your code as it stands will cause it to fail, printing out a plethora of warnings on the lines of:

Global symbol "@hello1" requires explicit package name at (prog_name) line 11

Work through these, one or two at a time, by declaring the variables in question with my.

A bit painstaking, but less so than posting a question to Perlmonks :-)

And suddenly you'll find why you should have started out by using strict and warnings; that is, when you get to the end of your sub and see that you try to return an array that doesn't exist!

(I assume that your line $tam=@h...; is just a copy/paste issue).

This won't solve your 'bad regex' problem, but it will solve others that you have, as well as others that you could certainly encounter in the future!

HTH

dave

Replies are listed 'Best First'.
Re: Re: Bad Regex
by Anonymous Monk on Jun 23, 2003 at 20:10 UTC
    I fail to see the irrelevance. OP asked about capturing line number, and a counter variable is a tad clunky. Using $. is a very simple way of doing it, and the $.->$_ scheme is an easy way to keep track of it all in an intuitive way. It is true that the regex may be m/^#/ is overly simple (then again, perhaps not...), but that can be fleshed out; all in all this seems a simple, pure-perl way to do the job.