my $self = bless deep_copy( \%default_values ), $class;
####
#!/usr/local/bin/perl
use strict;
use warnings;
use Data::Dumper;
my $count = 0;
my %default_values = (
SUBJECT => 'Subject (<= 44 characters) goes here',
AUTHOR => {
NAME => 'A. U. Thor',
CPANID => 'AUTHOR',
WEBSITE => 'http://a.galaxy.far.far.away/modules',
EMAIL => 'a.u.thor@a.galaxy.far.far.away',
},
);
compare( { %default_values },
{
'NAME' => 'ABC::Alpha',
'AUTHOR' => {
NAME => 'James E Keenan',
EMAIL => 'jkeenancpan.org',
},
}
);
compare( { %default_values },
{
'NAME' => 'ABC::Alpha',
'AUTHOR' => {
NAME => 'James E Keenan',
CPANID => 'JKEENAN',
},
}
);
print "\nFinished\n";
sub compare {
print "\nStart TEST ", ++$count, "----------\n\n";
my ($dvref, $paramsref) = @_;
print Dumper ($dvref, $paramsref);
my %dv = %{ $dvref };
my %parameters = %$paramsref;
foreach my $param ( keys %parameters ) {
if ( ref( $parameters{$param} ) eq 'HASH' ) {
foreach ( keys( %{ $parameters{$param} } ) ) {
$dv{$param}{$_} = $parameters{$param}{$_};
}
}
else {
$dv{$param} = $parameters{$param};
}
}
print Dumper (\%dv);
}
####
compare( default_values(),
{
'NAME' => 'ABC::Alpha',
'AUTHOR' => {
NAME => 'James E Keenan',
EMAIL => 'jkeenancpan.org',
},
}
);
compare( default_values(),
{
'NAME' => 'ABC::Alpha',
'AUTHOR' => {
NAME => 'James E Keenan',
CPANID => 'JKEENAN',
},
}
);
sub default_values {
my %default_values = (
SUBJECT => 'Subject (<= 44 characters) goes here',
AUTHOR => {
NAME => 'A. U. Thor',
CPANID => 'AUTHOR',
WEBSITE => 'http://a.galaxy.far.far.away/modules',
EMAIL => 'a.u.thor@a.galaxy.far.far.away',
},
);
return { %default_values };
}
}
####
my $self = ref($class) ? bless( default_values(), ref($class) )
: bless( default_values(), $class );