#!/usr/bin/perl

while (<>) {
  @numbers = split;
  $total = 0;
  $count = 0;

  foreach $number (@numbers) {
    if ($number != 0) {
      $total += $number;
    }
  }

  # (This fails if a line contains nothing but zeroes.)
  # (That is on purpose; it is fixed in averagelines2.pl.)
  $average = $total / @numbers;
  print "Average for line $.: $average.\n";

  $grand_count += @numbers;
  $grand_total += $total;
}

if ($grand_count) {
  $grand_average = $grand_total / $grand_count;
  print "The average of all numbers is $grand_average.\n";
}
