Task1
We reverse the string:
#!/usr/bin/env perl
use strict;
use warnings;
sub reverse_string{
my ($s) = @_;
my $res = '';
$res .= chop $s while length $s;
$res
}
printf "%s\n",reverse_string('');
printf "%s\n",reverse_string('reverse the given string');
printf "%s\n",reverse_string('Perl is Awesome');
printf "%s\n",reverse_string('v1.0.0-Beta!');
printf "%s\n",reverse_string('racecar');
Task2
We find all armstrong numbers under the given limit:
#!/usr/bin/env perl
use strict;
use warnings;
use Data::Show;
sub is_armstrong{
my ($base,$limit) = @_;
grep{
my ($v,$sum,@digits) = (0,0,split '',$_);
$v = $v * $base + $_,$sum += $_ ** @digits for @digits;
$v == $sum
} 0..$limit
}
show is_armstrong(10,1000);
show is_armstrong(7,1000);
show is_armstrong(16,1000);