in reply to Can you explain the result?

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

Replies are listed 'Best First'.
Re^2: Can you explain the result?
by PerlOnTheWay (Monk) on Dec 06, 2011 at 13:24 UTC
    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.