aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2021-02-09 21:55:46 +0000
committerGitHub <noreply@github.com>2021-02-09 21:55:46 +0000
commit30853894f47d90b56f29347e17b1e2770a898031 (patch)
treed49919f728d5e25352fc6adb5f23d72400da9e8a
parent323110b0d053e2067a3cae6db62bc209f869bc57 (diff)
parentbee7a6a2b0a9cd5580515a8aeeb10a06cdd5e558 (diff)
downloadperlweeklychallenge-club-30853894f47d90b56f29347e17b1e2770a898031.tar.gz
perlweeklychallenge-club-30853894f47d90b56f29347e17b1e2770a898031.tar.bz2
perlweeklychallenge-club-30853894f47d90b56f29347e17b1e2770a898031.zip
Merge pull request #3478 from jaldhar/challenge-098
Challenge 98 by Jaldhar H. Vyas
-rw-r--r--challenge-098/jaldhar-h-vyas/blog.txt1
-rw-r--r--challenge-098/jaldhar-h-vyas/input.txt1
-rwxr-xr-xchallenge-098/jaldhar-h-vyas/perl/ch-1.pl22
-rwxr-xr-xchallenge-098/jaldhar-h-vyas/perl/ch-2.pl29
-rwxr-xr-xchallenge-098/jaldhar-h-vyas/raku/ch-1.raku21
-rwxr-xr-xchallenge-098/jaldhar-h-vyas/raku/ch-2.raku19
6 files changed, 93 insertions, 0 deletions
diff --git a/challenge-098/jaldhar-h-vyas/blog.txt b/challenge-098/jaldhar-h-vyas/blog.txt
new file mode 100644
index 0000000000..88437d4900
--- /dev/null
+++ b/challenge-098/jaldhar-h-vyas/blog.txt
@@ -0,0 +1 @@
+https://www.braincells.com/perl/2021/02/perl_weekly_challenge_week_98.html
diff --git a/challenge-098/jaldhar-h-vyas/input.txt b/challenge-098/jaldhar-h-vyas/input.txt
new file mode 100644
index 0000000000..6a537b5b36
--- /dev/null
+++ b/challenge-098/jaldhar-h-vyas/input.txt
@@ -0,0 +1 @@
+1234567890 \ No newline at end of file
diff --git a/challenge-098/jaldhar-h-vyas/perl/ch-1.pl b/challenge-098/jaldhar-h-vyas/perl/ch-1.pl
new file mode 100755
index 0000000000..ab82a8e5e7
--- /dev/null
+++ b/challenge-098/jaldhar-h-vyas/perl/ch-1.pl
@@ -0,0 +1,22 @@
+#!/usr/bin/perl
+use 5.020;
+use warnings;
+use English qw / -no_match_vars /;
+
+sub readN {
+ my ($filename, $number) = @_;
+ my $buffer;
+ state $fh = undef;
+
+ if (!defined $fh) {
+ open $fh, '<', $filename or die "$OS_ERROR\n";
+ }
+
+ read $fh, $buffer, $number or die "$OS_ERROR\n";
+
+ return $buffer;
+}
+
+say readN('input.txt', 4);
+say readN('input.txt', 4);
+say readN('input.txt', 4);
diff --git a/challenge-098/jaldhar-h-vyas/perl/ch-2.pl b/challenge-098/jaldhar-h-vyas/perl/ch-2.pl
new file mode 100755
index 0000000000..d2785f19d7
--- /dev/null
+++ b/challenge-098/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 /;
+
+sub usage {
+ print <<"-USAGE-";
+ $PROGRAM_NAME [<N> ...]
+
+ [<N> ...] a series of atleast 2 distinct integers. The last element will be used as a target to search in the previous elements.
+-USAGE-
+ exit 0;
+}
+
+if (scalar @ARGV < 2) {
+ usage();
+}
+
+my $N = pop @ARGV;
+my $pos = scalar @ARGV;
+
+for my $i (0 .. scalar @ARGV - 1) {
+ if ($ARGV[$i] >= $N) {
+ $pos = $i;
+ last;
+ }
+}
+
+say $pos; \ No newline at end of file
diff --git a/challenge-098/jaldhar-h-vyas/raku/ch-1.raku b/challenge-098/jaldhar-h-vyas/raku/ch-1.raku
new file mode 100755
index 0000000000..9db5d0fa5c
--- /dev/null
+++ b/challenge-098/jaldhar-h-vyas/raku/ch-1.raku
@@ -0,0 +1,21 @@
+#!/usr/bin/raku
+
+sub readN(Str $filename, Int $number) {
+ state IO::Handle $fn = Nil;
+
+ try {
+ unless $fn {
+ $fn = $filename.IO.open(:r);
+ }
+
+ return $fn.readchars($number);
+ }
+
+ die $!;
+}
+
+sub MAIN() {
+ say readN('input.txt', 4);
+ say readN('input.txt', 4);
+ say readN('input.txt', 4);
+} \ No newline at end of file
diff --git a/challenge-098/jaldhar-h-vyas/raku/ch-2.raku b/challenge-098/jaldhar-h-vyas/raku/ch-2.raku
new file mode 100755
index 0000000000..b96823fe58
--- /dev/null
+++ b/challenge-098/jaldhar-h-vyas/raku/ch-2.raku
@@ -0,0 +1,19 @@
+#!/usr/bin/raku
+
+sub MAIN(
+ *@N #= a series of atleast 2 distinct integers. The last element will be
+ #= used as a target to search in the previous elements.
+ where {@_.elems > 1 }
+) {
+ my $N = @N.pop;
+ my $pos = @N.elems;
+
+ for 0 ..^ @N.elems -> $i {
+ if @N[$i] >= $N {
+ $pos = $i;
+ last;
+ }
+ }
+
+ say $pos;
+} \ No newline at end of file