#!/usr/bin/perl use warnings; use strict; #Die Roller: uses 4d6 discarding the lowest number #rerolling any roll of 1 my $roll = 6; my @sums; until ($roll == 0) { my @d6; chomp $roll; $roll--; $d6[0] = int(rand(6) + 1); $d6[1] = int(rand(6) + 1); $d6[2] = int(rand(6) + 1); $d6[3] = int(rand(6) + 1); @d6 = sort @d6; $d6[0] = int(rand(6) + 1); #reroll lowest number my $sum = $d6[0] + $d6[1] + $d6[2] + $d6[3]; push(@sums, $sum); print "$d6[0], $d6[1], $d6[2], $d6[3] : $sum\n\n"; } @sums = sort @sums; my $three_highest = $sums[3] + $sums[4] + $sums[5]; #add three highest numbers in array print "total of three highest roles : $three_highest";