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 as below, or enter http://melksh.am/nnnn for individual articles
Y103 - Python - Conditionals and Loops [353] Wimbledon Neck - (2005-06-20)
[657] The ternary operator in Python - (2006-03-25)
[668] Python - block insets help with documentation - (2006-04-04)
[788] New - Conditional expressions in Python 2.5 - (2006-07-01)
[835] Python - when to use the in operator - (2006-08-16)
[909] Python is like a narrowboat - (2006-10-30)
[1201] No switch in Python - (2007-05-23)
[1477] Decisions - small ones, or big ones? - (2007-12-18)
[1661] Equality, sameness and identity - Python - (2008-05-31)
[1696] Saying NOT in Perl, PHP, Python, Lua ... - (2008-07-04)
[2778] Learning to program in Python 2 ... and / or in Python 3 - (2010-05-24)
[2899] Groupsave tickets - 3 or 4 train tickets for the price of 2 - (2010-08-02)
[3083] Python - fresh examples from recent courses - (2010-12-11)
[3200] How a for loop works Java, Perl and other languages - (2011-03-12)
[3397] Does a for loop evaluate its end condition once, or on every iteration? - (2011-08-18)
[3439] Python for loops - applying a temporary second name to the same object - (2011-09-14)
[3558] Python or Lua - which should I use / learn? - (2011-12-21)
[3620] Finding the total, average, minimum and maximum in a program - (2012-02-22)
[3762] Learning to program - the if statement. Python. - (2012-06-12)
[3895] Flowchart to program - learning to program with Well House - (2012-10-14)
[4092] Identity in Python - (2013-05-17)
[4210] If elif elif elif - multiway selection in Python - (2013-11-16)
[4322] Learning to Program - the conditional statement (if) - (2014-11-21)
[4323] Learning to program - Loop statements such as while - (2014-11-22)
[4402] Finding sum, minimum, maximum and average in Python (and Ruby) - (2015-01-19)
[4541] Setting up and tearing down with the Python with keyword - (2015-10-16)
[4545] Method, Class, Module, Package - how to they relate in Python? - (2015-10-17)
[4713] Equality (in Python) - (2016-10-30)
[4723] Conditional operators in Python - (2016-11-05)
P206 - Perl - More Loops and Conditionals [138] Perl - redo and last without a loop - (2004-12-02)
[962] Breaking a loop - Ruby and other languages - (2006-12-03)
[1191] Smart English Output - via PHP and Perl ? : operator - (2007-05-18)
[1220] for loop - how it works (Perl, PHP, Java, C, etc) - (2007-06-06)
[1582] Ruby, C, Java and more - getting out of loops - (2008-03-19)
[1825] Question Mark - Colon operator (Perl and PHP) - (2008-10-08)
[2711] For loop - checked once, or evety time? Ruby v Perl comparison and contrast - (2010-04-07)
[2815] switch and case, or given and when in Perl - (2010-06-17)
[2817] Setting a safety net or fallback value in Perl - (2010-06-19)
[2824] A pint of Black Rat, and a lazy barman - (2010-06-25)
[2832] Are you learning Perl? Some more examples for you! - (2010-06-27)
[2892] Alternative loops and conditionals in Ruby and Perl - (2010-07-28)
[2967] Multiway branches in Perl - the given and when syntax - (2010-09-22)
[2972] Some more advanced Perl examples from a recent course - (2010-09-27)
[3398] Perl - making best use of the flexibility, but also using good coding standards - (2011-08-19)
[3619] Ruby v Perl - a comparison example - (2012-02-21)
[3914] While, for, foreach or something else to loop. - (2012-11-06)
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