Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re: Switch - "case" may clash with future reserved word

by ahoffmann (Initiate)
on Nov 28, 2007 at 21:50 UTC ( [id://653684]=note: print w/replies, xml ) Need Help??


in reply to Switch - "case" may clash with future reserved word

Thanks for the helpful advice, everyone. I'll just use something other than switch. (Didn't realize the module was so buggy.) The hash lookup example seems like the best fix. Thanks for the suggestion!
  • Comment on Re: Switch - "case" may clash with future reserved word

Replies are listed 'Best First'.
Re^2: Switch - "case" may clash with future reserved word
by erroneousBollock (Curate) on Nov 29, 2007 at 01:46 UTC
    I wouldn't say Switch.pm is buggy (update: in this specific case).

    It is a very simplistic source-filter, which gives you plenty of warning in its documentation on the risks and limits of its use.

    A "dispatch table" (as the hash of subs is usually called) is indeed a very useful construct, but sometimes a real switch/case-like construct is better.

    For example, if your algorithm calls for falling through from one case to another, it's hard to achieve that cleanly with a dispatch table (without additional external machinery).

    As mentioned above, Perl 5.10 (and 6) will introduce the given/when construct, which works like switch/case but is more powerful. The switch/case construct in most languages allows only integer or scalar values in case expressions, but given/when will allow many more possibilities (by using the "smart match" operator). Example:

    given $data { when /^\d+$/ { return %var{""} = $_ } when 'previous' { return %var{""} // fail NoData } when %var { return %var{""} = %var{$_} } default { die Err::BadData : msg=>"Don't understand $_" } }
    I know I'll be using it with abandon as soon as 5.10 comes out :-)

    -David

Re^2: Switch - "case" may clash with future reserved word
by Anonymous Monk on Jan 07, 2011 at 12:40 UTC
    I found this problem today where I was having 3 'switch' statements and error was coming after the Ist one. And a random workaround for me was to use 'use Switch' everytime before each switch statements. I was using perl 5.8.8. But its good to know the erratic behaviour. -dpk

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others pondering the Monastery: (2)
As of 2024-04-19 18:40 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found