[mplspm]: Howto do switch with fall-through
Jim Anderson
jim at acadcam.com
Thu Aug 29 15:08:12 CDT 2002
On Thu, Aug 29, 2002 at 02:49:29PM -0500, Dan Oelke wrote:
> I have a perl programming question for you....
>
> I want to create a switch type statement with fall-through like C provides.
>
> I have a script where it does a number of things in different "phases" for
> lack of a better phrase. What I figured I could do was to pass in the
> phase I wanted to start in, and the script would pick up at that phase and
> and proceed through the rest. Add an extra flag and I could have it do
> only that phase.
>
> Here is a code snippet illustrating what I want.
> #-----------------------------------------------
> use strict;
>
> my $onlyFlag = 1;
> $_ = $ARGV[0];
>
> SWITCH: {
> if (/Deliver/) {
> print "Deliver\n";
> if($onlyFlag) {last;}
> }
> if (/Baseline/) {
> print "Baseline\n";
> if ($onlyFlag) {last;}
> }
> if (/Rebase/) {
> print "Rebase\n";
> if ($onlyFlag) {last;}
> }
> if (/Build/) {
> print "Build\n";
> if ($onlyFlag) {last;}
> }
> }
> #-----------------------------------------------
>
> Except that when I execute
> perl test.pl Baseline
> I see only "Baseline" instead of "Baseline Rebase Build"
>
> Any ideas on how I can structure a switch type statement to get what I
> want, OR maybe just another cool way to restructure this code to get the
> same effect?
I think you want $onlyFlag to start out with 0, and set it to 1 if you've
set the flag.
--
Jim Anderson (612) 782-0456 jim at acadcam.com
Anderson CAD/CAM, Inc Lucifer designed MS-DOS to try
3800 Apache Lane NE men's souls.
St Anthony, MN 55421 Then he had a better idea...
--------------------------------------------------
Minneapolis Perl Mongers mailing list
To unsubscribe, send mail to majordomo at pm.org
with "unsubscribe mpls" in the body of the message.
More information about the Mpls-pm
mailing list