#!/usr/bin/env perl use utf8; use Devel::Assert 'on'; use Utils; use strict; use warnings; our $TEST_BASE = 0.9; sub exponentiation { my ($base, $powerArg) = @_; ::assert($powerArg >= 0); my $power = $powerArg; my $result = 1; while ($power > 0) { $result *= $base; --$power; } return $result; } MAIN: { for (my $p = 10; $p >= -1; --$p) { print Utils::messageFormat("\{0:f\} ^ \{1:d\} = \{2:f\}", $TEST_BASE, $p, exponentiation($TEST_BASE, $p)), "\n"; } }