in reply to Help with simplifying file parsing program?
To shorten it, or at least make it more switch-like, in perl you could use the aliasing to $_ or "for":If NAME =~ /BAA/ if ITEMS_A =~ /^134/ if ITEMS_B =~ /^134/ THEN TBAA+=SUM a++; elsif ITEMS_B !~ /^(134|00)/ THEN OBAA+=SUM b++; elsif ITEMS_B =~ /^00/ THEN IBAA+=SUM ab++; else EBAA+=SUM c++; # AFAICS this will never be reached. # Either ITEMS_B starts wit 134 or 00 or something # else. The last case is targeted by your second # ITEMS_B-if
SWITCH: for ($ITEMS_B) { /^134/ && do { # see above last SWITCH; }; !/^(134|00)/ && do { # see above last SWITCH; }; /^00/ && do { # see above last SWITCH; }; # else do { #see above last SWITCH; } }
|
|---|