Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things

Re: [perlre] $_ = /$re/ vs $_ =~ /$re/

by MarkM (Curate)
on Aug 28, 2003 at 23:49 UTC ( #287555=note: print w/replies, xml ) Need Help??

in reply to [perlre] $_ = /$re/ vs $_ =~ /$re/

Note that "$_ = /$re/" is actually equivalent to "$_ = ($_ =~ /$re/)". The final result that I would expect, is for ($_ =~ /$re/) to be interpretted in scalar context, resulting in a boolean value (1 or ""), and for the boolean value to be assigned to $_, which will alter the elements in @$dir to each be either 1 or "", depending on whether the element matched the regular expression or not.

Since you don't seem to be using @$dir again, this may have gone unnoticed. Since both expression invoke '$_ =~ /$re/', they do indeed 'do the same thing'.

If you are trying to reduce characters, try just "/$re/" without any mention of $_. As others recommended, you should really use "if (/$re/) {", as the match may not succeed.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://287555]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (11)
As of 2016-10-25 18:17 GMT
Find Nodes?
    Voting Booth?
    How many different varieties (color, size, etc) of socks do you have in your sock drawer?

    Results (326 votes). Check out past polls.