Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Can you explain the result?

by PerlOnTheWay (Monk)
on Dec 06, 2011 at 13:15 UTC ( [id://942011]=perlquestion: print w/replies, xml ) Need Help??

PerlOnTheWay has asked for the wisdom of the Perl Monks concerning the following question:

sub func { my ($delimiter, $text) = @_; return 1 and 0; } use Data::Dumper; print Dumper(func());

guess what?

the result is $VAR1 = 1;

anyone knows the reason?

seems that Perl gives return the same priority as an ordinary sub,is this really a good design?

Replies are listed 'Best First'.
Re: Can you explain the result?
by choroba (Cardinal) on Dec 06, 2011 at 13:26 UTC
      I know and has lower priority than &&,but it doesn't explain this issue.
        It does. Try with print instead of return to see.
Re: Can you explain the result?
by RMGir (Prior) on Dec 06, 2011 at 13:20 UTC
    Sure. The result of your function is the value 1, and that's what you're passing to Dumper...

    Now, if you called

    print Dumper(\&func);
    on the function reference, you'd get a slightly more interesting result:
    $VAR1 = sub { "DUMMY" };
    I guess my version of Dumper isn't up to decompiling subs - I'm guessing that's expected.

    Mike
      shouldn't  1 and 0 be false/0?
        As choroba said, return 1&&0 is different from return 1 and 0.

        $ perl -MB::Deparse -e' sub f{return 1 and 0;}; sub g{return 1 && 0}; $deparse=B::Deparse->new(); print "f(): ",$deparse->coderef2text(\&f),"\n"; print "g(): ",$deparse->coderef2text(\&g),"\n";' f(): { 0 if return 1; } g(): { return 0; }

        Mike
        A reply falls below the community's threshold of quality. You may see it by logging in.
Re: Can you explain the result?
by TJPride (Pilgrim) on Dec 06, 2011 at 16:33 UTC
    Rather than worrying about why Perl does this, it may be simpler to just do return (1 and 0);

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others wandering the Monastery: (6)
As of 2024-04-25 12:31 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found