in reply to trying to format a list
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
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
format a list
by sonikd (Initiate) on Apr 24, 2015 at 20:21 UTC | |
by ww (Archbishop) on Apr 24, 2015 at 22:07 UTC | |
by stevieb (Canon) on Apr 25, 2015 at 00:42 UTC | |
by sonikd (Initiate) on Apr 27, 2015 at 14:18 UTC | |
by hippo (Archbishop) on Apr 27, 2015 at 16:28 UTC | |
|
trying to format list
by sonikd (Initiate) on Apr 24, 2015 at 18:17 UTC | |
by stevieb (Canon) on Apr 24, 2015 at 18:32 UTC | |
by Laurent_R (Canon) on Apr 24, 2015 at 18:51 UTC | |
by stevieb (Canon) on Apr 24, 2015 at 19:36 UTC | |
by Anonymous Monk on Apr 24, 2015 at 18:59 UTC | |
by Laurent_R (Canon) on Apr 24, 2015 at 20:37 UTC | |
| |
by Anonymous Monk on Apr 25, 2015 at 00:31 UTC |