aboutsummaryrefslogtreecommitdiff
path: root/challenge-110/mohammad-anwar
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2021-04-26 19:22:50 +0100
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2021-04-26 19:22:50 +0100
commit928f43fffaa8a92ff7f002267e4e19ca5a52faa0 (patch)
tree5fecca66d8a109b7d04944321259e35e2186d3e1 /challenge-110/mohammad-anwar
parent7221a1c32fcf6d005041fd27a01a2da65d20db14 (diff)
downloadperlweeklychallenge-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.pl34
-rw-r--r--challenge-110/mohammad-anwar/perl/ch-2.pl29
-rw-r--r--challenge-110/mohammad-anwar/perl/input-1.txt5
-rw-r--r--challenge-110/mohammad-anwar/perl/input-2.txt5
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