The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Person::ID::CZ::RC - Perl class for Czech RC identification.

SYNOPSIS

use Person::ID::CZ::RC;

my $obj = Person::ID::CZ::RC->new(%params);
my $alternate = $obj->alternate;
my $checksum = $obj->checksum;
my $day = $obj->day;
my $error = $obj->error;
my $is_valid = $obj->is_valid;
my $month = $obj->month;
my $rc = $obj->rc;
my $serial = $obj->serial;
my $sex = $obj->sex;
my $year = $obj->year;

METHODS

new

my $obj = Person::ID::CZ::RC->new(%params);

Constructor.

  • rc

    Input Czech RC identification.

    It is required.

Returns instance of object.

alternate

my $alternate = $obj->alternate;

Get flag, that means alternate RC identification.

Returns 0/1.

checksum

my $checksum = $obj->checksum;

Get checksum.

Returns string with one number character or '-'.

day

my $day = $obj->day;

Get day of birth.

Returns string with day.

error

my $error = $obj->error;

Get error.

Returns error string or undef.

is_valid

my $is_valid = $obj->is_valid;

Get flag, that means validity of rc identification.

Returns 0/1.

month

my $month = $obj->month;

Get month of birth.

Returns string with month.

rc

my $rc = $obj->rc;

Get rc identification.

Returns string with rc identification.

serial

my $serial = $obj->serial;

Get serial part of rc identification.

Returns string with three numbers.

sex

my $sex = $obj->sex;

Get flag, that means sex of person.

Returns male/female string.

year

my $year = $obj->year;

Get year of birth.

Returns string with year.

ERRORS

new():
        Parameter 'rc' is required.
        From Class::Utils::set_params():
                Unknown parameter '%s'.

EXAMPLE1

use strict;
use warnings;

use Person::ID::CZ::RC;

# Object.
my $obj = Person::ID::CZ::RC->new(
        'rc' => '840501/1330',
);

# Get error.
my $error = $obj->error || '-';

# Print out.
print "Personal number: ".$obj->rc."\n";
print "Year: ".$obj->year."\n";
print "Month: ".$obj->month."\n";
print "Day: ".$obj->day."\n";
print "Sex: ".$obj->sex."\n";
print "Serial: ".$obj->serial."\n";
print "Checksum: ".$obj->checksum."\n";
print "Alternate: ".$obj->alternate."\n";
print "Valid: ".$obj->is_valid."\n";
print "Error: ".$error."\n";

# Output:
# Personal number: 840501/1330
# Year: 1984
# Month: 05
# Day: 01
# Sex: male
# Serial: 133
# Checksum: 0
# Alternate: 0
# Valid: 1
# Error: -

EXAMPLE2

use strict;
use warnings;

use Person::ID::CZ::RC;

# Object.
my $obj = Person::ID::CZ::RC->new(
        'rc' => '840230/1337',
);

# Get error.
my $error = $obj->error || '-';

# Print out.
print "Personal number: ".$obj->rc."\n";
print "Year: ".$obj->year."\n";
print "Month: ".$obj->month."\n";
print "Day: ".$obj->day."\n";
print "Sex: ".$obj->sex."\n";
print "Serial: ".$obj->serial."\n";
print "Checksum: ".$obj->checksum."\n";
print "Alternate: ".$obj->alternate."\n";
print "Valid: ".$obj->is_valid."\n";
print "Error: ".$error."\n";

# Output:
# Personal number: 840230/1337
# Year: 1984
# Month: 02
# Day: 30
# Sex: male
# Serial: 133
# Checksum: 7
# Alternate: 0
# Valid: 0
# Error: Date isn't valid.

EXAMPLE3

use strict;
use warnings;

use Person::ID::CZ::RC;

# Object.
my $obj = Person::ID::CZ::RC->new(
        'rc' => '840229/1330',
);

# Get error.
my $error = $obj->error || '-';

# Print out.
print "Personal number: ".$obj->rc."\n";
print "Year: ".$obj->year."\n";
print "Month: ".$obj->month."\n";
print "Day: ".$obj->day."\n";
print "Sex: ".$obj->sex."\n";
print "Serial: ".$obj->serial."\n";
print "Checksum: ".$obj->checksum."\n";
print "Alternate: ".$obj->alternate."\n";
print "Valid: ".$obj->is_valid."\n";
print "Error: ".$error."\n";

# Output:
# Personal number: 840229/1330
# Year: 1984
# Month: 02
# Day: 29
# Sex: male
# Serial: 133
# Checksum: 0
# Alternate: 0
# Valid: 0
# Error: Checksum isn't valid.

EXAMPLE4

use strict;
use warnings;

use Person::ID::CZ::RC;

# Object.
my $obj = Person::ID::CZ::RC->new(
        'rc' => '840229/133',
);

# Get error.
my $error = $obj->error || '-';

# Print out.
print "Personal number: ".$obj->rc."\n";
print "Year: ".$obj->year."\n";
print "Month: ".$obj->month."\n";
print "Day: ".$obj->day."\n";
print "Sex: ".$obj->sex."\n";
print "Serial: ".$obj->serial."\n";
print "Checksum: ".$obj->checksum."\n";
print "Alternate: ".$obj->alternate."\n";
print "Valid: ".$obj->is_valid."\n";
print "Error: ".$error."\n";

# Output:
# Personal number: 840229/133
# Year: 1984
# Month: 02
# Day: 29
# Sex: male
# Serial: 133
# Checksum: -
# Alternate: 0
# Valid: 0
# Error: Format of rc identification hasn't checksum.

EXAMPLE5

use strict;
use warnings;

use Person::ID::CZ::RC;

# Object.
my $obj = Person::ID::CZ::RC->new(
        'rc' => '840229|1330',
);

# Get error.
my $error = $obj->error || '-';

# Print out.
print "Personal number: ".$obj->rc."\n";
print "Year: ".$obj->year."\n";
print "Month: ".$obj->month."\n";
print "Day: ".$obj->day."\n";
print "Sex: ".$obj->sex."\n";
print "Serial: ".$obj->serial."\n";
print "Checksum: ".$obj->checksum."\n";
print "Alternate: ".$obj->alternate."\n";
print "Valid: ".$obj->is_valid."\n";
print "Error: ".$error."\n";

# Output:
# Personal number: 840229|1330
# Year: -
# Month: -
# Day: -
# Sex: -
# Serial: -
# Checksum: -
# Alternate: -
# Valid: 0
# Error: Format of rc identification isn't valid.

DEPENDENCIES

Class::Utils, DateTime, English, Error::Pure.

SEE ALSO

Business::DK::CPR

Danish CPR (SSN) number generator/validator

No::PersonNr

Check Norwegian Social security numbers

Person::ID::CZ::RC::Generator

Perl class for Czech RC identification generation.

Se::PersonNr

Module for validating and generating a Swedish personnummer.

REPOSITORY

https://github.com/michal-josef-spacek/Person::ID::CZ::RC

AUTHOR

Michal Josef Špaček mailto:skim@cpan.org

http://skim.cz

LICENSE AND COPYRIGHT

© Michal Josef Špaček 2013-2023

BSD 2-Clause License

VERSION

0.05