[Melbourne-pm] Perl switch statements

Toby Corkindale toby.corkindale at strategicdata.com.au
Sun Oct 21 22:51:26 PDT 2012

On 22/10/12 16:36, Toby Corkindale wrote:
> Something bugs me about Perl's switch statements.
> If you put a given(){} block at the end of a function, the function will
> return the matched result. However if you attempt to assign the result
> of given() directly to a variable, it will fail.
> Who came up with this and what were they thinking? I suppose there's a
> good reason, but I can't see what it is.
 > [snip example]

I suppose it's consistent to other control syntax, eg.

sub foo {
   my $thing = shift;
   if ($thing eq 'ay') { "yay" }
   else { "boo" }
          say foo("ay");
# outputs: yay

but that still bothers me.. Why is the result good enough to return but 
not to assign?

More information about the Melbourne-pm mailing list