#!/usr/local/bin/perl
# $Id: regexmatch.perl,v 1.5 2000/10/07 08:41:43 doug Exp $
# http://www.bagley.org/~doug/shootout/
use strict;
my $re = qr{
(?: ^ | [^\d\(]) # must be preceeded by non-digit
( \( )? # match 1: possible initial left paren
(\d\d\d) # match 2: area code is 3 digits
(?(1) \) ) # if match1 then match right paren
[ ] # area code followed by one space
(\d\d\d) # match 3: prefix of 3 digits
[ -] # separator is either space or dash
(\d\d\d\d) # match 4: last 4 digits
\D # must be followed by a non-digit
}x;
my $NUM = $ARGV[0];
$NUM = 1 if ($NUM < 1);
my @phones = <STDIN>;
my $count = 0;
my $num;
while ($NUM--) {
foreach (@phones) {
if (/$re/o) {
$num = "($2) $3-$4";
if (0 == $NUM) {
$count++;
print "$count: $num\n";
}
}
}
}