diff options
| -rw-r--r-- | challenge-098/jaldhar-h-vyas/blog.txt | 1 | ||||
| -rw-r--r-- | challenge-098/jaldhar-h-vyas/input.txt | 1 | ||||
| -rwxr-xr-x | challenge-098/jaldhar-h-vyas/perl/ch-1.pl | 22 | ||||
| -rwxr-xr-x | challenge-098/jaldhar-h-vyas/perl/ch-2.pl | 29 | ||||
| -rwxr-xr-x | challenge-098/jaldhar-h-vyas/raku/ch-1.raku | 21 | ||||
| -rwxr-xr-x | challenge-098/jaldhar-h-vyas/raku/ch-2.raku | 19 |
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 |
