From 235245168d85bfa2adcf65582e2a030c72cefc94 Mon Sep 17 00:00:00 2001 From: Kjetil Skotheim Date: Mon, 5 Feb 2024 21:47:11 +0100 Subject: https://theweeklychallenge.org/blog/perl-weekly-challenge-254/ --- challenge-254/kjetillll/perl/ch-1.pl | 13 +++++++++++++ challenge-254/kjetillll/perl/ch-2.pl | 18 ++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 challenge-254/kjetillll/perl/ch-1.pl create mode 100644 challenge-254/kjetillll/perl/ch-2.pl diff --git a/challenge-254/kjetillll/perl/ch-1.pl b/challenge-254/kjetillll/perl/ch-1.pl new file mode 100644 index 0000000000..56d103140d --- /dev/null +++ b/challenge-254/kjetillll/perl/ch-1.pl @@ -0,0 +1,13 @@ +sub is_three_power { + my $n = shift; + my $try = $n**(1/3); + int($try) ** 3 == $n or + int($try+1) ** 3 == $n; +} + +use Test::More; +ok( is_three_power(27) ); +ok( is_three_power(0) ); +ok(!is_three_power(6) ); +ok( is_three_power($_**3), "$_^3 = ".($_**3) ) for map int( $_ * rand 1e7 ), 0..10; +done_testing; diff --git a/challenge-254/kjetillll/perl/ch-2.pl b/challenge-254/kjetillll/perl/ch-2.pl new file mode 100644 index 0000000000..a64ec3a23e --- /dev/null +++ b/challenge-254/kjetillll/perl/ch-2.pl @@ -0,0 +1,18 @@ +sub reverse_vowels { + pop =~ s/[aeiou]/ push @_, $&; $& /geir + =~ s/[aeiou]/ $& eq lc$& ? lc pop : uc pop /geir +} + +use Test::More; +is( reverse_vowels('Raku') => 'Ruka' ); +is( reverse_vowels('Perl') => 'Perl' ); +is( reverse_vowels('Julia') => 'Jaliu' ); +is( reverse_vowels('Uiua') => 'Auiu' ); +is( reverse_vowels('Queue') => 'Qeueu' ); +is( reverse_vowels('Queen') => 'Qeeun' ); +is( reverse_vowels('Audio') => 'Oidua' ); +is( reverse_vowels('Suave') => 'Seavu' ); +is( reverse_vowels('Euouae') => 'Eauoue' ); +is( reverse_vowels('non-antidisestablishmentarianismistically to say the least') + => 'nan-entedasostablishmintirainasmestically te siy thi laost' ); +done_testing; -- cgit