aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;