diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2021-04-26 19:22:50 +0100 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2021-04-26 19:22:50 +0100 |
| commit | 928f43fffaa8a92ff7f002267e4e19ca5a52faa0 (patch) | |
| tree | 5fecca66d8a109b7d04944321259e35e2186d3e1 /challenge-110/mohammad-anwar | |
| parent | 7221a1c32fcf6d005041fd27a01a2da65d20db14 (diff) | |
| download | perlweeklychallenge-club-928f43fffaa8a92ff7f002267e4e19ca5a52faa0.tar.gz perlweeklychallenge-club-928f43fffaa8a92ff7f002267e4e19ca5a52faa0.tar.bz2 perlweeklychallenge-club-928f43fffaa8a92ff7f002267e4e19ca5a52faa0.zip | |
- Added Perl solutions to week 110.
Diffstat (limited to 'challenge-110/mohammad-anwar')
| -rw-r--r-- | challenge-110/mohammad-anwar/perl/ch-1.pl | 34 | ||||
| -rw-r--r-- | challenge-110/mohammad-anwar/perl/ch-2.pl | 29 | ||||
| -rw-r--r-- | challenge-110/mohammad-anwar/perl/input-1.txt | 5 | ||||
| -rw-r--r-- | challenge-110/mohammad-anwar/perl/input-2.txt | 5 |
4 files changed, 73 insertions, 0 deletions
diff --git a/challenge-110/mohammad-anwar/perl/ch-1.pl b/challenge-110/mohammad-anwar/perl/ch-1.pl new file mode 100644 index 0000000000..141fdf3b8e --- /dev/null +++ b/challenge-110/mohammad-anwar/perl/ch-1.pl @@ -0,0 +1,34 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +my $FILE = $ARGV[0]; +die "ERROR: Missing input file.\n" unless defined $FILE; + +open(my $fh, '<:encoding(utf8)', $FILE) + or die "ERROR: Unable to open $FILE: $!\n"; + +while (my $row = <$fh>) { + chomp $row; + + # + # I got the following regex works fine against the test data + # when used on regex101.com + # + # /^\+?|(\()?\d{2}\d{2}?\1?\s\d{10}$/ + # + # But For some strange reason, it didn't work here. + # + # So I had to get the following instead. + # + + if ( ($row =~ /\+\d{2}\s\d{10}/) || + ($row =~ /\d{4}\s\d{10}/) || + ($row =~ /\(\d{2}\)\s\d{10}/) + ) { + print "$row\n"; + } +} + +close($fh); diff --git a/challenge-110/mohammad-anwar/perl/ch-2.pl b/challenge-110/mohammad-anwar/perl/ch-2.pl new file mode 100644 index 0000000000..5591c5cb18 --- /dev/null +++ b/challenge-110/mohammad-anwar/perl/ch-2.pl @@ -0,0 +1,29 @@ +#!/usr/bin/perl + +use strict; +use warnings; + +use Text::CSV; + +my $FILE = $ARGV[0]; +die "ERROR: Missing input file.\n" unless defined $FILE; + +my $csv = Text::CSV->new; + +open(my $fh, '<:encoding(utf8)', $FILE) + or die "ERROR: Unable to open $FILE: $!\n"; + +my $contents = []; +while (my $row = $csv->getline($fh)) { + chomp $row; + my $i = 0; + foreach my $field (@$row) { + push @{$contents->[$i++]}, $field; + } +} + +close($fh); + +foreach my $row (@$contents) { + print join(",", @$row), "\n"; +} diff --git a/challenge-110/mohammad-anwar/perl/input-1.txt b/challenge-110/mohammad-anwar/perl/input-1.txt new file mode 100644 index 0000000000..48d6254741 --- /dev/null +++ b/challenge-110/mohammad-anwar/perl/input-1.txt @@ -0,0 +1,5 @@ +0044 1148820341 + +44 1148820341 + 44-11-4882-0341 +(44) 1148820341 + 00 1148820341 diff --git a/challenge-110/mohammad-anwar/perl/input-2.txt b/challenge-110/mohammad-anwar/perl/input-2.txt new file mode 100644 index 0000000000..716ebdce75 --- /dev/null +++ b/challenge-110/mohammad-anwar/perl/input-2.txt @@ -0,0 +1,5 @@ +name,age,sex +Mohammad,45,m +Joe,20,m +Julie,35,f +Cristina,10,f |
