aboutsummaryrefslogtreecommitdiff
path: root/challenge-110
diff options
context:
space:
mode:
Diffstat (limited to 'challenge-110')
-rw-r--r--challenge-110/jaldhar-h-vyas/blog.txt1
-rwxr-xr-xchallenge-110/jaldhar-h-vyas/perl/ch-1.pl15
-rwxr-xr-xchallenge-110/jaldhar-h-vyas/perl/ch-2.pl29
-rw-r--r--challenge-110/jaldhar-h-vyas/phonenumber.txt5
-rwxr-xr-xchallenge-110/jaldhar-h-vyas/raku/ch-1.raku11
-rwxr-xr-xchallenge-110/jaldhar-h-vyas/raku/ch-2.raku12
-rw-r--r--challenge-110/jaldhar-h-vyas/transpose.txt5
7 files changed, 78 insertions, 0 deletions
diff --git a/challenge-110/jaldhar-h-vyas/blog.txt b/challenge-110/jaldhar-h-vyas/blog.txt
new file mode 100644
index 0000000000..9126c5710f
--- /dev/null
+++ b/challenge-110/jaldhar-h-vyas/blog.txt
@@ -0,0 +1 @@
+https://www.braincells.com/perl/2021/05/perl_weekly_challenge_week_110.html
diff --git a/challenge-110/jaldhar-h-vyas/perl/ch-1.pl b/challenge-110/jaldhar-h-vyas/perl/ch-1.pl
new file mode 100755
index 0000000000..e118f66d82
--- /dev/null
+++ b/challenge-110/jaldhar-h-vyas/perl/ch-1.pl
@@ -0,0 +1,15 @@
+#!/usr/bin/perl
+use 5.020;
+use warnings;
+use English qw/ -no_match_vars /;
+
+my $filename = shift // die "Need a filename\n";
+
+open my $file, '<' , $filename or die "$OS_ERROR\n";
+local $RS = undef;
+my @phone_numbers = split "\n", <$file>;
+close $file;
+
+my $valid = qr{ \A \s* ( \+\d{2} | \(\d{2}\) | \d{4} ) \s* \d{10} \s* \z }msx;
+
+map { say; } grep { /$valid/ } @phone_numbers;
diff --git a/challenge-110/jaldhar-h-vyas/perl/ch-2.pl b/challenge-110/jaldhar-h-vyas/perl/ch-2.pl
new file mode 100755
index 0000000000..7599efcbd0
--- /dev/null
+++ b/challenge-110/jaldhar-h-vyas/perl/ch-2.pl
@@ -0,0 +1,29 @@
+#!/usr/bin/perl
+use 5.020;
+use warnings;
+use English qw/ -no_match_vars /;
+
+my $filename = shift // die "Need a filename\n";
+
+open my $file, '<' , $filename or die "$OS_ERROR\n";
+local $RS = undef;
+my @input = split "\n", <$file>;
+close $file;
+
+my @table;
+
+for my $line (@input) {
+ push @table, [ split /,/, $line ];
+}
+
+my @transposed;
+
+for my $j (0 .. scalar @{$table[0]} - 1) {
+ for my $i (0 .. scalar @table - 1) {
+ push @{$transposed[$j]}, $table[$i]->[$j];
+ }
+}
+
+for my $i (0 .. scalar @transposed - 1) {
+ say join q{,}, @{$transposed[$i]};
+} \ No newline at end of file
diff --git a/challenge-110/jaldhar-h-vyas/phonenumber.txt b/challenge-110/jaldhar-h-vyas/phonenumber.txt
new file mode 100644
index 0000000000..2fe352979a
--- /dev/null
+++ b/challenge-110/jaldhar-h-vyas/phonenumber.txt
@@ -0,0 +1,5 @@
+0044 1148820341
+ +44 1148820341
+ 44-11-4882-0341
+(44) 1148820341
+ 00 1148820341 \ No newline at end of file
diff --git a/challenge-110/jaldhar-h-vyas/raku/ch-1.raku b/challenge-110/jaldhar-h-vyas/raku/ch-1.raku
new file mode 100755
index 0000000000..38a19c97e8
--- /dev/null
+++ b/challenge-110/jaldhar-h-vyas/raku/ch-1.raku
@@ -0,0 +1,11 @@
+#!/usr/bin/raku
+
+sub MAIN(
+ Str $filename
+) {
+ my $valid = rx{
+ ^ \s* ( \+\d ** 2 | \(\d ** 2\) | \d ** 4 ) \s* \d ** 10 \s* $
+ };
+
+ $filename.IO.lines.grep({ /$valid/ }).map({ .say; });
+} \ No newline at end of file
diff --git a/challenge-110/jaldhar-h-vyas/raku/ch-2.raku b/challenge-110/jaldhar-h-vyas/raku/ch-2.raku
new file mode 100755
index 0000000000..27cfde18c1
--- /dev/null
+++ b/challenge-110/jaldhar-h-vyas/raku/ch-2.raku
@@ -0,0 +1,12 @@
+#!/usr/bin/raku
+
+sub MAIN(
+ Str $filename
+) {
+ my @table;
+ for $filename.IO.lines -> $line {
+ @table.push($line.split(q{,}));
+ }
+
+ (0 ..^ @table[0].elems).map({ @table[*;$_]; }).map({ $_.join(q{,}).say; });
+} \ No newline at end of file
diff --git a/challenge-110/jaldhar-h-vyas/transpose.txt b/challenge-110/jaldhar-h-vyas/transpose.txt
new file mode 100644
index 0000000000..6ae8688038
--- /dev/null
+++ b/challenge-110/jaldhar-h-vyas/transpose.txt
@@ -0,0 +1,5 @@
+name,age,sex
+Mohammad,45,m
+Joe,20,m
+Julie,35,f
+Cristina,10,f \ No newline at end of file