diff options
| -rw-r--r-- | challenge-254/kjetillll/perl/ch-1.pl | 13 | ||||
| -rw-r--r-- | challenge-254/kjetillll/perl/ch-2.pl | 18 |
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; |
