From 57558851871adbaf762e1ef132f0d27e220e5a57 Mon Sep 17 00:00:00 2001 From: Niels van Dijke Date: Mon, 29 Jan 2024 10:04:57 +0000 Subject: w254 - Task 1 & 2 --- challenge-254/perlboy1967/perl/ch1.pl | 36 +++++++++++++++++++++++++++++++++++ challenge-254/perlboy1967/perl/ch2.pl | 36 +++++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100755 challenge-254/perlboy1967/perl/ch1.pl create mode 100755 challenge-254/perlboy1967/perl/ch2.pl diff --git a/challenge-254/perlboy1967/perl/ch1.pl b/challenge-254/perlboy1967/perl/ch1.pl new file mode 100755 index 0000000000..68c055158f --- /dev/null +++ b/challenge-254/perlboy1967/perl/ch1.pl @@ -0,0 +1,36 @@ +#!/bin/perl + +=pod + +The Weekly Challenge - 254 +- https://theweeklychallenge.org/blog/perl-weekly-challenge-254 + +Author: Niels 'PerlBoy' van Dijke + +Task 1: Three Power +Submitted by: Mohammad S Anwar + +You are given a positive integer, $n. + +Write a script to return true if the given integer is a power of three otherwise return false. + +=cut + +use v5.32; +use feature qw(signatures); +use common::sense; + +use Test2::V0; + +sub isPowerN ($n,$base) { + return 1 if $n == 0; + my $r = $n ** (1/$base); + $r =~ m#^\d+$# ? 1 : 0; +} + + +is(isPowerN($_,3),1,"isPowerN($_,3) == 1") for (0,1,8,27,64); +is(isPowerN($_,3),0,"isPowerN($_,3) == 0") for (2,7,9,26,28,63,65); +is(isPowerN($_,5),1,"isPowerN($_,5) == 1") for (1,32,243); + +done_testing; diff --git a/challenge-254/perlboy1967/perl/ch2.pl b/challenge-254/perlboy1967/perl/ch2.pl new file mode 100755 index 0000000000..b0e4391327 --- /dev/null +++ b/challenge-254/perlboy1967/perl/ch2.pl @@ -0,0 +1,36 @@ +#!/bin/perl + +=pod + +The Weekly Challenge - 254 +- https://theweeklychallenge.org/blog/perl-weekly-challenge-254 + +Author: Niels 'PerlBoy' van Dijke + +Task 2: Reverse Vowels +Submitted by: Mohammad S Anwar + +You are given a string, $s. + +Write a script to reverse all the vowels (a, e, i, o, u) in the given string. + +=cut + +use v5.32; +use feature qw(signatures); +use common::sense; + +use Test2::V0; + +sub reverseVowels ($str) { + my @v = reverse $str =~ m/(?i)[aeiou]/g; + ucfirst lc $str =~ s/(?i)[aeiou]/shift @v/egr; +} + + +is(reverseVowels('Raku'),'Ruka'); +is(reverseVowels('Perl'),'Perl'); +is(reverseVowels('Julia'),'Jaliu'); +is(reverseVowels('Uiua'),'Auiu'); + +done_testing; -- cgit From 9f5a6b4518271be9a6eafc81ea341add51686490 Mon Sep 17 00:00:00 2001 From: Niels van Dijke Date: Mon, 29 Jan 2024 10:15:33 +0000 Subject: Task 2 - Don't need reverse(), just pop() --- challenge-254/perlboy1967/perl/ch2.pl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/challenge-254/perlboy1967/perl/ch2.pl b/challenge-254/perlboy1967/perl/ch2.pl index b0e4391327..2af8efbfb6 100755 --- a/challenge-254/perlboy1967/perl/ch2.pl +++ b/challenge-254/perlboy1967/perl/ch2.pl @@ -23,8 +23,8 @@ use common::sense; use Test2::V0; sub reverseVowels ($str) { - my @v = reverse $str =~ m/(?i)[aeiou]/g; - ucfirst lc $str =~ s/(?i)[aeiou]/shift @v/egr; + my @v = $str =~ m/(?i)[aeiou]/g; + ucfirst lc $str =~ s/(?i)[aeiou]/pop @v/egr; } -- cgit