There wasn't much input you supplied, so I made assumptions that all numbers will be in either one or two of those formats. I'll leave it up to you to hack as necessary to handle other formats (I left the else-if open). Also, I'll leave the exercise of changing the input file from __DATA__ to an actual file, but the open for writing line should help
#!/usr/bin/perl use warnings; use strict; open my $fh, '+>', 'output.txt' or die("Can't open the damn file!: $!"); while(my $line = <DATA>){ chomp $line; my ($name, $num) = split(/\s+(?=\d)/, $line); # some lines have whitespace after the num $num =~ s/\s+//g; if ($num =~ /^\d{4}$/){ $num = "(333)-321-$num"; } elsif ($num =~ /^\d{3}-\d{4}$/){ $num = "(333)-$num"; } print $fh "$name $num\n"; } __DATA__ Black, Joe 0987 Smith, Sue 0534 Brown, Andy 587-0986
Output:
$ cat output.txt Black, Joe (333)-321-0987 Smith, Sue (333)-321-0534 Brown, Andy (333)-587-0986
-stevieb
In reply to Re: total noob trying to format a phone list
by stevieb
in thread trying to format a list
by sonikd
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |