Chris Devers wrote:
> On Mon, 16 Aug 2004, Fontenot, Paul wrote:
> 
> > Here is the entire script:
> 
> Thanks, this is clearer.
> 
> > while (my(@row) = $sth->fetchrow_array)
> > {
> >    # ... snip ...
> >     my $mso = $row[2](m/MS\d\d\-\d{3}/);
> 
> This may work better:
> 
>       my $mso = $row[2] =~ (m/MS\d\d\-\d{3}/);
> 
> or
> 
>       my $mso = ( $row[2] =~ (m/MS\d\d\-\d{3}/) );

It should be:

   my ($mso) = $row[2] =~ /(MS\d\d-\d\d\d)/;

> 
> I'm cargo culting here, i.e. pasting an idiom that I've never
> understood as clearly as I ought to; I can never keep straight when
> (or why) the pattern match should be wrapped in parens, but I think
> the latter version should definitely work.

Both versions will set $mso to true/false depending on success of the match.

To capture the actual value matched, you need to use parens in the regex and
call in list context. The parens around $mso force the m// operator into
context.

(Chris, why do all your messages have an X-Message-Flag header? It's
annoying for poor shlubs like me who are using MS Outlook :~)

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to