Acme-constant
view release on metacpan or search on metacpan
lib/Acme/constant.pm view on Meta::CPAN
}
use 5.014;
use strictures 1;
use Carp ();
sub generate_constant {
my ($package, $name, @values) = @_;
# Prototype is used to make it work like a constant (constants
# shouldn't take arguments). While anonymous subroutines don't use
# prototypes, the prototype gets meaning when this subroutine is
# assigned to type glob.
my $constant = sub () : lvalue {
# When constant used as array, it's very simple to understand
# user wants an array. The !defined wantarray check is intended
# to detect use of wantarray() in void context.
if (wantarray || !defined wantarray) {
@values;
}
# When constant has one element, writing to it in scalar
# context is fine.
elsif (@values == 1) {
( run in 0.955 second using v1.01-cache-2.11-cpan-49f99fa48dc )