Exercises
See Appendix A for answers to the following exercises:
[12] Write a subroutine, called
&total, which returns the total of a list of numbers. Hint: The subroutine should not perform any I/O; it should process its parameters and return a value to its caller. Try it out in this sample program, which exercises the subroutine to see that it works. The first group of numbers should add up to 25.my @fred = qw{ 1 3 5 7 9 }; my $fred_total = &total(@fred); print "The total of \@fred is $fred_total.\n"; print "Enter some numbers on separate lines: "; my $user_total = &total(<STDIN>); print "The total of those numbers is $user_total.\n";[5] Using the subroutine from the previous problem, make a program to calculate the sum of the numbers from 1 to 1,000.
[18] Extra credit exercise: Write a subroutine, called
&above_average, which takes a list of numbers and returns the ones which are above the average (mean). (Hint: Make another subroutine that calculates the average by dividing the total by the number of items.) Try your subroutine in this test program.my @fred = &above_average(1..10); print "\@fred is @fred\n"; print "(Should be 6 7 8 9 10)\n"; my @barney = &above_average(100, 1..10); print "\@barney is @barney\n"; print "(Should be just 100)\n";
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access