aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-063/perlboy1967/perl/ch-2.pl30
1 files changed, 30 insertions, 0 deletions
diff --git a/challenge-063/perlboy1967/perl/ch-2.pl b/challenge-063/perlboy1967/perl/ch-2.pl
new file mode 100644
index 0000000000..10c617d68d
--- /dev/null
+++ b/challenge-063/perlboy1967/perl/ch-2.pl
@@ -0,0 +1,30 @@
+#!/usr/bin/perl
+
+# Perl Weekly Challenge - 063
+#
+# Task 2 - Rotate String
+#
+# Author: Niels 'PerlBoy' van Dijke
+
+use strict;
+use warnings;
+
+# Prototype
+sub rotateWord ($$);
+
+while (<>) {
+ my ($word, $n) = $_ =~ /(\S+)\s+(\d+)/;
+
+ printf "rotateWord('%s', %d) => '%s'\n",
+ $word, $n, rotateWord($word, $n);
+}
+
+sub rotateWord ($$) {
+ my ($word, $rotateNtimes) = @_;
+
+ my @chars = split(//, $word);
+
+ push(@chars, splice(@chars, 0, $rotateNtimes % scalar(@chars)));
+
+ return join('', @chars);
+}