package Grains; use strict; use warnings; use feature qw; use bignum; use Exporter qw; our @EXPORT_OK = qw; sub grains_on_square { my ($square) = @_; die "square must be between 1 and 64" if $square < 1 or $square > 64; return 2 ** ( $square - 1 ); } sub total_grains { my $total; foreach my $square ( 1 .. 64 ) { $total += grains_on_square( $square ); } return $total; } 1;