Business-DK-CPR
view release on metacpan or search on metacpan
examples/params-validate.pl view on Meta::CPAN
check_cpr(cpr => 1501720000);
};
if ($@) {
print "CPR is not valid - $@\n";
}
sub check_cpr {
validate( @_,
{ cpr =>
{ callbacks =>
{ 'validate_cpr' => sub { validateCPR($_[0]); } } } } );
print $_[1]." is a valid CPR\n";
}
lib/Business/DK/CPR.pm view on Meta::CPAN
$hash{$_} = $left_hashref->{$_};
}
return \%hash;
}
sub calculate {
my ($birthdate) = @_;
validate_pos( @_,
{ type => SCALAR, callbacks => { 'date' => \&_checkdate } } );
my @cprs;
for ( 1 .. 999 ) {
my $n = sprintf '%03s', $_;
#From DK::Business::CVR
my $sum = _calculate_sum( ( $birthdate . $n ), \@controlcifers );
my $mod = $sum % MODULUS_OPERAND_1968;
my $checkciffer = ( MODULUS_OPERAND_1968 - $mod );
lib/Business/DK/CPR.pm view on Meta::CPAN
}
return VALID;
}
sub generate {
my ( $birthdate, $gender ) = @_;
validate_pos(
@_,
{ type => SCALAR, callbacks => { 'date' => \&_checkdate }, },
{ type => SCALAR, optional => 1, default => q{} },
);
my @genders;
if ($gender) {
push @genders, $gender;
}
else {
@genders = qw(male female);
lib/Business/DK/CPR.pm view on Meta::CPAN
return scalar keys %cprs;
}
}
sub generate2007 {
my ( $birthdate, $gender ) = @_;
#TODO assert gender?
validate_pos(
@_,
{ type => SCALAR, callbacks => { 'date' => \&_checkdate }, },
{ type => SCALAR, optional => 1 },
);
my @cprs;
my %seeds;
if ( defined $gender ) {
if ( $gender eq MALE ) {
%seeds = %male_seeds;
}
lib/Business/DK/CPR.pm view on Meta::CPAN
return scalar @cprs;
}
}
sub generate1968 {
my ( $birthdate, $gender ) = @_;
#TODO assert gender?
validate_pos(
@_,
{ type => SCALAR, callbacks => { 'date' => \&_checkdate }, },
{ type => SCALAR, optional => 1, default => q{} },
);
my @cprs;
my @malecprs;
my @femalecprs;
my $checksum = 0;
while ( $checksum < 9999 ) {
lib/Business/DK/CPR.pm view on Meta::CPAN
#Using with Params::Validate
#See also examples/
use Params::Validate qw(:all);
use Business::DK::CPR qw(validateCPR);
sub check_cpr {
validate( @_,
{ cpr =>
{ callbacks =>
{ 'validate_cpr' => sub { validateCPR($_[0]); } } } } );
print $_[1]." is a valid CPR\n";
}
=head1 DESCRIPTION
CPR stands for Central Person Registration and is the social security number
used in Denmark.
( run in 0.659 second using v1.01-cache-2.11-cpan-9b1e4054eb1 )