aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKjetil Skotheim <kjetil.skotheim@sikt.no>2024-02-05 21:47:11 +0100
committerKjetil Skotheim <kjetil.skotheim@sikt.no>2024-02-05 21:47:11 +0100
commit235245168d85bfa2adcf65582e2a030c72cefc94 (patch)
tree7a4615a98cc9d6016ac101beca91a5c4cc472ea4
parent04c92115f9c30fedf9839a7d0c2e0705914a35a8 (diff)
downloadperlweeklychallenge-club-235245168d85bfa2adcf65582e2a030c72cefc94.tar.gz
perlweeklychallenge-club-235245168d85bfa2adcf65582e2a030c72cefc94.tar.bz2
perlweeklychallenge-club-235245168d85bfa2adcf65582e2a030c72cefc94.zip
https://theweeklychallenge.org/blog/perl-weekly-challenge-254/
-rw-r--r--challenge-254/kjetillll/perl/ch-1.pl13
-rw-r--r--challenge-254/kjetillll/perl/ch-2.pl18
2 files changed, 31 insertions, 0 deletions
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;