Kaip žinia, Perlo kalboje nėra switch
konstrukcijos. Gal
kam ir keista, bet yra keletas (kaip visada Perle yra keletas būdų
atlikti tam pačiam daiktui ;) būdų kaip apsieiti be to.
Pirmas būdas gana man bjaurokas, nes naudoja goto
(nors
šiaip tai labai primena įprastą switch
:
SWITCH:{ # switch($option) $_='CASE_'.$option; eval("goto $_"); $_= 'DEFAULT' if ($@); goto $_; CASE_1: print "Case 1\n"; last SWITCH; CASE_4: print "Case 4:\n"; last SWITCH; CASE_FOUR: print "Case FOUR\n"; last SWITCH; CASE_9: print "Case 9\n"; return "Because I can"; CASE_WHAT: ; CASE_STR: print "Case STRING on $option\n"; last SWITCH; DEFAULT: print qq|Undefined Case "$option"\n|; }
Dažniausiai naudojama nuorodų lentelė (dispatch table):
my %switch = ( default => \&list_ads, submit_payment => \&save_payment, set_duration => \&set_duration, go_here => sub {print 'hi'}, ); $switch{$value} ? $switch{$value}->() : $switch{'default'})->();
Dar vienas būdas:
for ($val) { /^1$/ && do { do_something }; /^abc$/ && do { do_something_else }; /^d{2,4}$/ && do { do_something_further }; }
Arba galima naudotis Switch
moduliu. There is more than one way to do it.
dar 1 nieko nedominantis postas.
na nevisai neiko ..
moxliuk, biski off-topic, bet: tu kase nors kazkiek minimaliai domies? ;)
hm… kas kaip perlinikai tyli…
op0sum: trūksta komentarų apie krepšinį? :)
NB, pavasarine depresija uzpuole? pvz mane sudomino sitas postas!
Lakunas: aš taip parašiau, nes niekas nesiteikė pakomentuoti.