#!/usr/bin/perl -w my @numbers = (1..24); print "do some processing:\n"; traverseNumbers( \&doSomeProcessing ); print "do some more processing:\n"; traverseNumbers( \&doSomeMoreProcessing ); sub traverseNumbers { my($function) = @_; $count = 0; for (0 .. $#numbers) { $number = $numbers[$_]; if (&$function($number)) { if($count % 10 == 0) { print " "; } print sprintf(" %02d",$number); if($count % 10 == 9) { print "\n"; } $count = $count + 1; } } print "\n"; } sub doSomeProcessing { my($number) = @_; sleep(1); return 1; } sub doSomeMoreProcessing { my($number) = @_; `sleep 1`; return 1; }