Name : perl-Const-Exporter
| |
Version : 1.2.3
| Vendor : obs://build_opensuse_org/devel:languages:perl
|
Release : 1.10
| Date : 2024-08-05 20:28:23
|
Group : Unspecified
| Source RPM : perl-Const-Exporter-1.2.3-1.10.src.rpm
|
Size : 0.04 MB
| |
Packager : (none)
| |
Summary : Declare constants for export
|
Description :
This module allows you to declare constants that can be exported to other modules.
To declare constants, simply group then into export tags:
package MyApp::Constants;
use Const::Exporter
tag_a => [ \'foo\' => 1, \'bar\' => 2, ],
tag_b => [ \'baz\' => 3, \'bar\', ],
default => [ \'foo\', ];
Constants in the \'default\' tag are exported by default (that is, they are added to the \'AATTEXPORTS\' array).
When a constant is already defined in a previous tag, then no value is specified for it. (For example, \'bar\' in \'tab_b\' above.) If you do give a value, Const::Exporter will assume it\'s another symbol.
Your module can include multiple calls to \'use Const::Exporter\', so that you can reference constants in other expressions, e.g.
use Const::Exporter
tag => [ \'$zero\' => 0, ];
use Const::Exporter
tag => [ \'$one\' => 1 + $zero, ];
or even something more complex:
use Const::Exporter
http_ports => [ \'HTTP\' => 80, \'HTTP_ALT\' => 8080, \'HTTPS\' => 443, ];
use Const::Exporter
http_ports => [ \'AATTHTTP_PORTS\' => [ HTTP, HTTP_ALT, HTTPS ], ];
Constants can include traditional constant symbols, as well as scalars, arrays or hashes.
Constants can include values defined elsewhere in the code, e.g.
our $foo;
BEGIN { $foo = calculate_value_for_constant(); }
use Const::Exporter
tag => [ \'$foo\' ];
Note that this will make the symbol read-only. You don\'t need to explicitly declare it as such.
Enumerated constants are also supported:
use Const::Exporter
tag => [
[qw/ foo bar baz /] => 1,
];
will define the symbols \'foo\' (1), \'bar\' (2) and \'baz\' (3).
You can also specify a list of numbers, if you want to skip values:
use Const::Exporter
tag => [
[qw/ foo bar baz /] => [1, 4],
];
will define the symbols \'foo\' (1), \'bar\' (4) and \'baz\' (5).
You can even specify string values:
use Const::Exporter
tag => [
[qw/ foo bar baz /] => [qw/ feh meh neh /],
];
however, this is equivalent to
use Const::Exporter
tag => [ \'foo\' => \'feh\', \'bar\' => \'meh\', \'baz\' => \'neh\', ];
Objects are also supported,
use Const::Exporter
tag => [ \'$foo\' => Something->new( 123 ), ];
|
RPM found in directory: /packages/linux-pbone/ftp5.gwdg.de/pub/opensuse/repositories/devel:/languages:/perl:/CPAN-C/openSUSE_Tumbleweed/noarch |