Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re: return !!

by webfiend (Vicar)
on Mar 04, 2009 at 21:23 UTC ( #748325=note: print w/ replies, xml ) Need Help??


in reply to return !!

It's doing a couple things, although only one of them is relevant to the execution of code:

  • As mentioned, it's returning 1 if there are any items in @value, and false otherwise.
  • It's wreaking havoc on Vim's syntax highlighting.
  • It's wreaking havoc on my own poor brain trying to parse "not not (scalar) @value".

I'd probably use a more explicit test, as the following example shows (lexical variables added for my own peace of mind):

use Modern::Perl; sub mean_test { my @value = @_; return !!@value; } sub nicer_test { my @values = @_; return scalar @values > 0; } say "Mean: Empty: ", mean_test(); say "Mean: One Item: ", mean_test("sweet!"); say "Mean: Two Items: ", mean_test("dude!", "sweet!"); say "Nicer: Empty: ", nicer_test(); say "Nicer: One Item: ", nicer_test("sweet!"); say "Nicer: Two Items: ", nicer_test("dude!", "sweet!");

It evaluates the same, as far as I can tell.

Mean: Empty:
Mean: One Item: 1
Mean: Two Items: 1
Nicer: Empty:
Nicer: One Item: 1
Nicer: Two Items: 1


Comment on Re: return !!
Download Code
Re^2: return !!
by massa (Hermit) on Mar 04, 2009 at 23:52 UTC
    The vim syntax highlighting thing can be fixed by putting a space between the bangs (! !@_).
    []s, HTH, Massa (κς,πμ,πλ)

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (7)
As of 2015-07-04 14:08 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (60 votes), past polls