Great response, by the way, Jeff -- I wish I'd read this 3 years ago...
- Bryan > On Jul 21, Brent Clark said: > >> I have the following code: >> >> ($fileName) = ($_ =~ /regexcode/o); >> >> Which gives me the correct data. > >> But if I make it like so (note the () missing around the variable): >> >> $fileName = ($_ =~ /regexcode/o); >> >> Whats the difference. > > The difference is the context. A pattern match returns different values > depending on whether it was called in scalar context or list context. In > scalar context, a pattern match returns whether or not it was able to > match. In list context, the pattern match returns the capture groups: > > $x = "japhy" =~ /(.)...(.)/; # $x = 1 > ($x) = "japhy" =~ /(.)...(.)/; # $x = 'j' > @x = "japhy" =~ /(.)...(.)/; # @x = ('j', 'y') > > By placing parentheses on the left-hand side of an = operation, you're > creating a list of values (even if it's one, or even zero values). > > If the pattern match has the /g modifier on it (for global matching), the > context changes how it behaves as well. -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>