in reply to treating * as a normal character in a regex

Escape the star eg. "THIS TEXT HAS A \* IN IT";

Baskslash will escape special chars in a regex! If your regex string is not going to be interpolated twice. Otherwise it's definately best to ignore this monk's advice and skip to the next answer:)

UpdateGrrr. It worked fine in my test program ..mutter mutter mutter...:(

C:\test>perl -w "$_ = 'aaaaaaaaaaaaaa*bbbbbbbbbbb'; print 'Found it!' +if (/\*/);" Can't open perl script "$_ = 'aaaaaaaaaaaaaa*bbbbbbbbbbb'; print 'Foun +d it!' if (/\*/ );": Invalid argument C:\test>perl -we "$_ = 'aaaaaaaaaaaaaa*bbbbbbbbbbb'; print 'Found it!' + if (/\*/);" Found it! C:\test>perl -we "$_ = 'aaaaaaaaaaaaaabbbbbbbbbbb'; print 'Found it!' +if (/\*/);" C:\test>

Shame I felt so silly that I (had to) tested it, that I chose not to post the horribly complicated test prog.

<cockney>Say la vee </cockney>:)

And yes, I 'wasted' a vote and ++ Mr. AM.

That guy amazes me, one time s/he asks the most trivial of questions, other times s/he responds with such knowledgable answers. Sometimes for several sometimes on the same day.

It's almost like s/he has a split personality??

Replies are listed 'Best First'.
Re: Re: regexp =~
by Anonymous Monk on Jul 29, 2002 at 17:58 UTC
    Escape the star eg. "THIS TEXT HAS A \* IN IT";

    Note, that will not fix the problem. Try it and see. You need to use single quotes and a backslash, double quotes and two backslashes, or better, \Q and \E as suggested by others.