Linux workstation

Upstream software project

perl-Switch

A switch statement for Perl, do not use if you can use given/when

About perl-Switch

A switch statement for Perl, do not use if you can use given/when

This project links 3 native package records across 3 recorded operating-system releases. Compare the retained versions and architectures below, then open the package for your own release.

These are catalog observations, not a guarantee of installation, compatibility, or upstream support.

Project pictures and package coverage

openSUSE Leap 15.6: 1 package records; openSUSE Leap 16.0: 1 package records; openSUSE Tumbleweed: 1 package records. Catalog coverage diagram, not an application screenshot.perl-Switch: recorded package coverageopenSUSE Leap 15.61 recordsopenSUSE Leap 16.01 recordsopenSUSE Tumbleweed1 records
OpenFactory diagram of linked package records. It is not an application screenshot.

Project identity

Project
perl-Switch
Publisher
Not authoritatively mapped
Native package records
3
Operating systems
opensuse-leap-15-6, opensuse-leap-16-0, opensuse-tumbleweed
License expression
Artistic-1.0 or GPL-1.0+
Metadata completeness
100/100 (not a software quality rating)
Source repository
Not reported

Source-reported description

The fullest retained description is shown with its source. Distribution packaging descriptions may include downstream details.

The Switch.pm module implements a generalized case mechanism that covers most (but not all) of the numerous possible combinations of switch and case values described above. The module augments the standard Perl syntax with two new control statements: 'switch' and 'case'. The 'switch' statement takes a single scalar argument of any type, specified in parentheses. 'switch' stores this value as the current switch value in a (localized) control variable. The value is followed by a block which may contain one or more Perl statements (including the 'case' statement described below). The block is unconditionally executed once the switch value has been cached. A 'case' statement takes a single scalar argument (in mandatory parentheses if it's a variable; otherwise the parens are optional) and selects the appropriate type of matching between that argument and the current switch value. The type of matching used is determined by the respective types of the switch value and the 'case' argument, as specified in Table 1. If the match is successful, the mandatory block associated with the 'case' statement is executed. In most other respects, the 'case' statement is semantically identical to an 'if' statement. For example, it can be followed by an 'else' clause, and can be used as a postfix statement qualifier. However, when a 'case' block has been executed control is automatically transferred to the statement after the immediately enclosing 'switch' block, rather than to the next statement within the block. In other words, the success of any 'case' statement prevents other cases in the same scope from executing. But see the "Allowing fall-through" manpage below. Together these two new statements provide a fully generalized case mechanism: use Switch; %special = ( woohoo => 1, d'oh => 1 ); while (<>) { chomp; switch ($_) { case (%special) { print "homer\n"; } # if $special{$_} case /[a-z]/i { print "alpha\n"; } # if $_ =~ /a-z/i case [1..9] { print "small num\n"; } # if $_ in [1..9] case { $_[0] >= 10 } { print "big num\n"; } # if $_ >= 10 print "must be punctuation\n" case /\W/; # if $_ ~= /\W/ } } Note that 'switch'es can be nested within 'case' (or any other) blocks, and a series of 'case' statements can try different types of matches -- hash membership, pattern match, array intersection, simple equality, etc. -- against the same switch value. The use of intersection tests against an array reference is particularly useful for aggregating integral cases: sub classify_digit { switch ($_[0]) { case 0 { return 'zero' } case [2,4,6,8] { return 'even' } case [1,3,5,7,9] { return 'odd' } case /[A-F]/i { return 'hex' } } }

Description source

Packages by operating system

Compare recorded versions, then open a package for dependency, file, checksum, and repository evidence. Version strings are distribution-specific, not a ranking of newer software.

openSUSE Leap 15.6

  1. perl-Switch

    openSUSE Leap 15.6 / Development/Libraries/Perl / source perl-Switch

    2.17-3.2.1

    A switch statement for Perl, do not use if you can use given/when

    noarchleap-15.6

openSUSE Leap 16.0

  1. perl-Switch

    openSUSE Leap 16.0 / Development/Libraries/Perl / source perl-Switch

    2.17-160000.2.2

    A switch statement for Perl, do not use if you can use given/when

    noarchleap-16.0

openSUSE Tumbleweed

  1. perl-Switch

    openSUSE Tumbleweed / Development/Libraries/Perl / source perl-Switch

    2.17-1.38

    A switch statement for Perl, do not use if you can use given/when

    noarchtumbleweed

Project resources and further reading

Mapping provenance

Only source-backed identity signals create public cross-OS links. A reviewer can later approve or dispute an inferred relationship without rewriting native package history.

No field-level source record is published yet.