#!/usr/bin/perl use strict; use warnings; print "Mean Average Program\n"; my @values; push @values, $_ while (defined ($_ = nextValue ())); my $sum; $sum += $_ for @values; my $mean = $sum / @values; print "\nThe mean of your values is $mean\n"; sub nextValue { print "Enter a value ('done' if finished): "; while (1) { chomp (my $value = <>); return if $value =~ m'done'i; return $value if $value =~ /[+-]?\d+(\.\d*)?([+-]?[eE]\d+)?/; print "I don't recognise $value as a number or as 'done'. Try again: "; } } #### Mean Average Program Enter a value ('done' if finished): 2 Enter a value ('done' if finished): 2 Enter a value ('done' if finished): 3 Enter a value ('done' if finished): done The mean of your values is 2.33333333333333