Below shows how to emulate the switch... case ... construct in C
# file: # switch_emu.pl # description: # this is the file to show how to simulate the switch ... case ... construct in Perl # # conclusion: # perl does not have switch case... # You can emulate switch ... case with bare blocks and label # use strict; SWITCH: { if (/^abc/) { $abc =1; last SWITCH; } if (/^def/) { $def =1; last SWITCH; } if (/^xyz/) { $xyz =1; last SWITCH; } $nothing = 1; } SWITCH1: { /^abc/ && do { $abc =1; last SWITCH1; } /^def/ && do { $def =1; last SWITCH1; } /^xyz/ && do { $xyz =1; last SWITCH1; } $nothing = 1 } if (/^abc/) { $abc = 1} elsif (/^def/) { $def = 1 } elsif (/^def/) { $def = 1 } else { $nothing = 1 } # the last in the do { } blocks does not exit the do {} block , # but rather exit the for loop for ($very_nasty_long_name[$i++][$j++]->method()) { /this pattern/ and do { push @flags, '-e'; last; }; /that pattern/ and do { push @flags, '-h'; last; }; /something else/ and do { last; }; die "unknown value: '$_'"; }