Here is a slightly modified version:
#!perl -w
use strict;
my @array = <DATA>; # use DATA so don't have to play with file
my @phone;
my $MyErrors = 0; # let me know if errors
foreach (@array) {
chomp; # remove linefeed
next if ( /^\s*$/ ); # if blank line bypass
if (/\s+(\d{3})\s+(\d{3})\s+(\d{4}):/ ) { # assuming std format of 3 3 4 and each
line should # have one
push(@phone, $1 . ' ' . $2 . ' ' . $3 ); # just push on and add a space between
}else {
printf "Expecting a phone number in line, but did not find one in\n";
printf "correct format.\nData received follows:\n%-s\n", $_;
$MyErrors++
}
}
if ( $MyErrors ) {
printf "There were errors in processing. Please check and rerun\n";
}
__DATA__
Firstname Lastname 650 156 7190:somfield:somefield:somefield
Firstname Lastname 408 256 7290:somfield:somefield:somefield
Firstname Lastname 510 3456 7390:somfield:somefield:somefield
^--------------------- Script ends here
Wags ;)
-----Original Message-----
From: Anidil Rajendran-Raj [mailto:[EMAIL PROTECTED]]
Sent: Monday, March 25, 2002 11:46
To: [EMAIL PROTECTED]
Subject: newbie question
Firstname Lastname 650 156 7190:somfield:somefield:somefield
Firstname Lastname 408 256 7290:somfield:somefield:somefield
Firstname Lastname 510 3456 7390:somfield:somefield:somefield
I have the above lines in a file and I am trying to create an array of =
phone numbers
open (FILE,"thefile") or die;
@array =3D <FILE>;
my @phone;
for each $string (@array) {
$phone[$i] =3D ($string =3D~ /\s\d+\s\d+\s\d+:/) ;
$i++;
}
This does not work, what am I doing wrong? or it there a better way?
Thanks
raj
[EMAIL PROTECTED]
650.730.8271
<www.netliant.com>
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]