Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Re^3: Secret Perl Operators: the boolean list squash operator, x!!

by Aristotle (Chancellor)
on Jul 31, 2006 at 17:34 UTC ( #564815=note: print w/ replies, xml ) Need Help??


in reply to Re^2: Secret Perl Operators: the boolean list squash operator, x!!
in thread Secret Perl Operators: the boolean list squash operator, x!!

He probably means something like this:

exists $hash{ foo } && exists $hash{ foo }{ bar } ? $hash{ foo }{ bar +} : ()

In this case, switching to x!! will cause $hash{ foo }{ bar } to always be evaluated, which will cause $hash{ foo } to be autovivified even if the condition is false.

Makeshifts last the longest.


Comment on Re^3: Secret Perl Operators: the boolean list squash operator, x!!
Download Code
Re^4: Secret Perl Operators: the boolean list squash operator, x!!
by Jenda (Abbot) on Jul 31, 2006 at 17:44 UTC

    I see. Actually to prevent confusion ... even this would autovivify:

    @a = ( $hash{foo}{bar} x!! 0);
    I guess we'd need to "fix" the x operator to not evaluate the lefthand operator if the righthand one is <=0.

Re^4: Secret Perl Operators: the boolean list squash operator, x!!
by eric256 (Parson) on Jul 31, 2006 at 17:47 UTC

    Update: Never mind, i see it now ;P)

    Why would that be trouble?

    use strict; use warnings; use Data::Dumper; my $hash = { test => 1}; print Dumper($hash); print "Hello\n" x!! exists($hash->{test}); print Dumper($hash); print "One More\n" x!! exists($hash->{test2}) && exists($hash->{test2} +->{Dude}); print Dumper($hash);

    That works as expected and doesn't autovivify anything...did I miss something?


    ___________
    Eric Hodges

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (15)
As of 2014-08-01 13:17 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Who would be the most fun to work for?















    Results (20 votes), past polls