If you make the following changes, it should print "4":
package Average; # D e c l a r e a p a c k a g e
# A v e r a ge a l i s t o f g r a d e s
sub av {
$total = 0;
@grades = (3,4,5);
$num_of_grades =$#grades + 1;
foreach $grade ( @grades ) {
$total += $grade;
}
$res = $total/$num_of_grades; # W h a t g e t s r e t u r n e d
#print $res;
return $res;
}
1;
#&av;
...and your script...
use warnings;
use Average;
$res = Average::av();
print $res;
You really meant to return a value ($res) from your sub. Eventually, you will probably also want to pass something as an argument to your sub. See also: