Class-Std-Storable
view release on metacpan or search on metacpan
lib/Class/Std/Storable.pm view on Meta::CPAN
{
my $old_sub = \&Class::Std::MODIFY_HASH_ATTRIBUTES;
my %positional_arg_of;
my $new_sub = sub {
my ($package, $referent, @attrs) = @_;
my @return_attrs = $old_sub->(@_);
for my $attr (@attrs) {
next if $attr !~ m/\A ATTRS? \s* (?:[(] (.*) [)] )? \z/xms;
my $name;
#we have a backup if no name is given for the attribute.
$positional_arg_of{$package} ||= "__Positional_0001";
#but we would prefer to know the argument as the class does.
if (my $config = $1) {
$name = Class::Std::_extract_init_arg($config)
|| Class::Std::_extract_get($config)
|| Class::Std::_extract_set($config);
}
$name ||= $positional_arg_of{$package}++;
push @{$attributes_of{$package}}, {
ref => $referent,
( run in 1.120 second using v1.01-cache-2.11-cpan-49f99fa48dc )