On Sat, 11 Jun 2005, Jeff 'japhy' Pinyan wrote:

> On Jun 11, Ron Smith said:
>
> > Does Perl have the equivalent of a case statement or a switch
> > statement.  I'm trying to avoid a bunch of "if-then" statements.
> > I'm seeing posts regarding "use switch", but I want to make sure
> > it's not a deprecated practice. I'm using Perl -v 5.8.0.
>
> The Switch.pm module isn't standard with Perl, but is a way to do it...

Yes. With the standard Switch.pm module :-)

    $ perldoc -q switch
    Found in /System/Library/Perl/5.8.1/pods/perlfaq7.pod
           How do I create a switch or case statement?

               This is explained in more depth in the perlsyn.  Briefly,
               there's no official case statement, because of the variety of
               tests possible in Perl (numeric comparison, string comparison,
               glob comparison, regex matching, overloaded comparisons, ...).
               Larry couldn't decide how best to do this, so he left it out,
               even though it's been on the wish list since perl1.

               Starting from Perl 5.8 to get switch and case one can use the
               Switch extension and say:

                       use Switch;

               after which one has switch and case.  [...]

But then, the same article goes on to say...

               But if one wants to use pure Perl, the general answer is
               to write a construct like this:

                   for ($variable_to_test) {
                       if    (/pat1/)  { }     # do something
                       elsif (/pat2/)  { }     # do something else
                       elsif (/pat3/)  { }     # do something else
                       else            { }     # default
                   }

And more examples follow in the same document.



-- 
Chris Devers

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to