[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