use strict; my ($file1,$file2) = @ARGV; do_first($file1); do_second($file1); sub do_first { my $file = shift; open(FH,$file) or die "can't open $file: $!"; print while ; } sub do_second { my $file = shift; open(FH,$file) or die "can't open $file: $!"; my @lines = ; print reverse @lines; }