Regexp::Common::SEN.3pm

Langue: en

Version: 2003-03-23 (mandriva - 01/05/08)

Section: 3 (Bibliothèques de fonctions)

sub par11 {
    my $string = shift;
    my $sum    = 0;
    for my $i (0 .. length ($string) - 1) {
        my $c = substr ($string, $i, 1);
        $sum += $c * (length ($string) - $i)
    }
    !($sum % 11) }

It's not clear whether this is the right checksum.

# http://www.google.nl/search?q=cache:8m1zKNYrEO0J:www.enschede.nl/nieuw/projecten/aanbesteding/integratie/pve%2520Bijlage%25207.5.doc+Sofi+nummer+formaat&hl=en&start=56&lr=lang_en|lang_nl&ie=UTF-8 pattern name => [qw /SEN Netherlands SoFi/],
        create => sub {
            # 9 digits (d1 d2 d3 d4 d5 d6 d7 d8 d9)
            # 9*d1 + 8*d2 + 7*d3 + 6*d4 + 5*d5 + 4*d6 + 3*d7 + 2*d8 + 1*d9 
            # == 0 mod 11.
            qr /([0-9]{9})(?(?{par11 ($^N)})|(?!))/;
        }
        ;

NAME

Regexp::Common::SEN -- provide regexes for Social-Economical Numbers.

SYNOPSIS

  use Regexp::Common qw /SEN/;
 
 
  while (<>) {
      /^$RE{SEN}{USA}{SSN}$/    and  print "Social Security Number\n";
  }
 
 

DESCRIPTION

Please consult the manual of Regexp::Common for a general description of the works of this interface.

Do not use this module directly, but load it via Regexp::Common.

$RE{SEN}{USA}{SSN}{-sep}


$RE{SEN}{USA}{SSN}{-sep}

Returns a pattern that matches an American Social Security Number (SSN). SSNs consist of three groups of numbers, separated by a hypen ("-"). This pattern only checks for a valid structure, that is, it validates whether a number is valid SSN, was a valid SSN, or maybe a valid SSN in the future. There are almost a billion possible SSNs, and about 400 million are in use, or have been in use.

If "-sep=P" is specified, the pattern P is used as the separator between the groups of numbers.

Under "-keep" (see Regexp::Common):

$1
captures the entire SSN.
$2
captures the first group of digits (the area number).
$3
captures the second group of digits (the group number).
$4
captures the third group of digits (the serial number).

HISTORY

  $Log: SEN.pm,v $
  Revision 2.102  2005/01/02 01:17:48  abigail
  - Removed 'use Carp', as we aren't using it.
  - Outcommented unused 'par11' function. Ought to be in _support.pm anyway.
 
 
  Revision 2.101  2004/06/09 21:52:14  abigail
  Force 2.101 version
 
 
  Revision 2.1  2004/06/09 21:50:14  abigail
  Initial checkin
 
 

SEE ALSO

Regexp::Common for a general description of how to use this interface.

AUTHORS

Damian Conway and Abigail.

MAINTAINANCE

This package is maintained by Abigail (regexp-common@abigail.nl).

BUGS AND IRRITATIONS

Bound to be plenty.

For a start, there are many common regexes missing. Send them in to regexp-common@abigail.nl.

           Copyright (c) 2001 - 2003, Damian Conway and Abigail.
         All Rights Reserved. This module is free software. It may
         be used, redistributed and/or modified under the terms of
                         the Perl Artistic License
             (see http://www.perl.com/perl/misc/Artistic.html)