Both
Perl and
Python lack a switch and case type contruct that you'll find in almost any other programming language. Why's this?
Switch and case, where provided, give a multiway branch capability but - quite frankly - I've always found them to be messy constructs in all the various languages that I've used. So perhaps the authors of Perl and Python are forward thinking rather than cramming their language with "me also" type facilities.
You really DON'T need them!!
In Python, you can use a dictionary of code objects and there's no need for any conditional statements at all - very clever (if a bit obscure), so I've put an example into our
course follow up examples
In Perl, you can use a label to "mimic" a switch - again, I've provided
an example so that you can see the detail if you wish.
(written 2005-05-03, updated 2006-06-05)
Associated topics are indexed under
P206 - Perl - More Loops and Conditionals [3398] Perl - making best use of the flexibility, but also using good coding standards - (2011-08-19)
[3200] How a for loop works Java, Perl and other languages - (2011-03-12)
[2972] Some more advanced Perl examples from a recent course - (2010-09-27)
[2967] Multiway branches in Perl - the given and when syntax - (2010-09-22)
[2892] Alternative loops and conditionals in Ruby and Perl - (2010-07-28)
[2832] Are you learning Perl? Some more examples for you! - (2010-06-27)
[2824] A pint of Black Rat, and a lazy barman - (2010-06-25)
[2817] Setting a safety net or fallback value in Perl - (2010-06-19)
[2815] switch and case, or given and when in Perl - (2010-06-17)
[2711] For loop - checked once, or evety time? Ruby v Perl comparison and contrast - (2010-04-07)
[1825] Question Mark - Colon operator (Perl and PHP) - (2008-10-08)
[1696] Saying NOT in Perl, PHP, Python, Lua ... - (2008-07-04)
[1582] Ruby, C, Java and more - getting out of loops - (2008-03-19)
[1220] for loop - how it works (Perl, PHP, Java, C, etc) - (2007-06-06)
[1191] Smart English Output - via PHP and Perl ? : operator - (2007-05-18)
[962] Breaking a loop - Ruby and other languages - (2006-12-03)
[657] The ternary operator in Python - (2006-03-25)
[138] Perl - redo and last without a loop - (2004-12-02)
Y103 - Python - Conditionals and Loops [3558] Python or Lua - which should I use / learn? - (2011-12-21)
[3439] Python for loops - applying a temporary second name to the same object - (2011-09-14)
[3397] Does a for loop evaluate its end condition once, or on every iteration? - (2011-08-18)
[3083] Python - fresh examples from recent courses - (2010-12-11)
[2899] Groupsave tickets - 3 or 4 train tickets for the price of 2 - (2010-08-02)
[2778] Learning to program in Python 2 ... and / or in Python 3 - (2010-05-24)
[1661] Equality, sameness and identity - Python - (2008-05-31)
[1477] Decisions - small ones, or big ones? - (2007-12-18)
[1201] No switch in Python - (2007-05-23)
[909] Python is like a narrowboat - (2006-10-30)
[835] Python - when to use the in operator - (2006-08-16)
[788] New - Conditional expressions in Python 2.5 - (2006-07-01)
[668] Python - block insets help with documentation - (2006-04-04)
[353] Wimbledon Neck - (2005-06-20)
Some other Articles
Lambdas in PythonDining full circleGeneral Election day, UKDentist's Waiting Room SyndromeWhat - no switch or case statement?Sharing pictures of WiltshireA reminder that the customer is KingUsing a Python dictionary as a holder of object attributesPricing strategy - simple and fairPython generator functions, lambdas, and iterators