Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

Re: Re: Defined or Undefined - That is the question.

by michael (Sexton)
on Mar 13, 2001 at 21:51 UTC ( #64173=note: print w/replies, xml ) Need Help??

in reply to Re: Defined or Undefined - That is the question.
in thread Defined or Undefined - That is the question.

Since an array returns its length in scalar context--which is the context that unless places the array in--an array of length 0 will return 0, or false. From reading Programming Perl, I thought that unless didn't permit a branching conditional. Can someone clarify this for a Perl newbie?

Replies are listed 'Best First'.
(sacked: unless/else) Re: Re: Re: Defined or Undefined - That is the question.
by sacked (Hermit) on Mar 14, 2001 at 04:29 UTC
    On the top of page 23 in my Camel 2, it reads

    There is no "elsunless" though. This is generally construed as a feature.
    I believe the authors meant that there is no keyword that means "elsif (not EXPR)" in the way that "unless (EXPR)" means "if (not EXPR)." You can, however, use elsif and else with unless:
    foreach $a ( 0,1,2 ) { unless ( $a ) { print "a is 0 or undef\n"; } elsif ( $a == 1 ) { print "a is 1\n"; } else { print "a equals $a\n"; } } __END__ a is 0 or undef a is 1 a equals 2
    I hope this clears things up for you.


      Ah, yes. That does clear it up. (That's p. 31 on the 3d edition of the Camel.) Unfortunately, the Camel doesn't show that usage in the proximity.


Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://64173]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (11)
As of 2017-11-22 19:36 GMT
Find Nodes?
    Voting Booth?
    In order to be able to say "I know Perl", you must have:

    Results (327 votes). Check out past polls.