Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re: Re: variable set to 0 ? 0 : 1

by BrowserUk (Patriarch)
on Sep 08, 2002 at 02:47 UTC ( [id://195964]=note: print w/replies, xml ) Need Help??


in reply to Re: variable set to 0 ? 0 : 1
in thread variable set to 0 ? 0 : 1

One interesting use that is (as far as I know) unique to Perl, is using the trinary as an Lvalue. That is on the left hand-side of an assignment as in this (rather silly) example.

#! perl -sw use strict; my (@aboveC, @cOrLess); while (<DATA>) { # $1 := name, $2 := grade m/^(\w+)\s+([a-f][+-]?)$/i; # if the grade is one of these 0<= index('A+ A A- B+ B B- C+', uc($2), 0 ) # add name here if not add name here ? $aboveC[@aboveC] : $cOrLess[@cOrLess] = $1; } print "Above C students: @aboveC\n"; print "C or Less students: @cOrLess\n"; __DATA__ homer f bart d- marge c+ lisa a

which gives

C:\test>195952 Above C students: marge lisa C or Less students: homer bart C:\test>

Well It's better than the Abottoire, but Yorkshire!

Replies are listed 'Best First'.
Re3: variable set to 0 ? 0 : 1
by blakem (Monsignor) on Sep 08, 2002 at 04:10 UTC
    I have to admit being excited about this construct the first time I saw it, though I don't know if I've ever really used it....
    push(@{ $whichone ? \@arr1 : \@arr2 }, $element);

    -Blake

      Oh, I use that quite frequently: push @{ -d "$dir/$_" ? \@dir : \@file }, $_ for readdir DIR; It's pretty much the only use I have for it, but it's a perfect match for that.

      Makeshifts last the longest.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others meditating upon the Monastery: (3)
As of 2024-04-20 03:38 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found