Newsgroup: comp.lang.perl


Newsgroups: comp.lang.perl
Path: icdoc!dds
From: dds@doc.ic.ac.uk (Diomidis Spinellis)
Subject: Re: (Silly?) idea for new perl feature
Nntp-Posting-Host: skid.doc.ic.ac.uk
Message-ID: <1992Jan11.171508.8166@doc.ic.ac.uk>
Summary: already exists
Organization: Dept. of Computing, Imperial College, London, England
Keywords: ternary compare evaluate
Date: Sat, 11 Jan 1992 17:15:08 GMT
References: <1992Jan10.203455.22219@abekrd.co.uk>
Lines: 23
Content-Length: 875
In article <1992Jan10.203455.22219@abekrd.co.uk> garyb@abekrd.co.uk (Gary Bartlett) writes:
[...]
>Now, perl has added the  operators  <=> and cmp which  produce  values
>with three outcomes, (stored  internally as -1, 0 and 1).  Wouldn't it
>be nice to have a perl  operator  similar  to '?  :'  which  acted  on
>these three outcome values?
>
>eg -	$ans = (x <=> 2) ?? 10 :: 9 :: 8
>
>ie - if 'x' is less  than 2, then set  'ans' to 10; if 'x' is equal to
>     2, then set 'ans' to 9; if 'x' is greater  than 2, then set 'ans'
>     to 8.
[...]

Perl already supports such a construct:

	$ans = (10, 9, 8)[($x <=> 2) + 1];

Diomidis
-- 
Diomidis Spinellis                  Internet:                 dds@doc.ic.ac.uk
Department of Computing             UUCP:                    ...!ukc!icdoc!dds
Imperial College, London SW7        #include "/dev/tty"



Newsgroup comp.lang.perl contents
Newsgroup list
Diomidis Spinellis home page

Creative Commons License Unless otherwise expressly stated, all original material on this page created by Diomidis Spinellis is licensed under a Creative Commons Attribution-Share Alike 3.0 Greece License.