#!/usr/bin/perl use warnings; use strict; main(@ARGV); sub main { my ($file1, $file2) = @_; open my $fh, '<', $file1 or die $!; print "first: $_" while <$fh>; close $fh; again($fh, $file2); print "again: $_" while <$fh>; } sub again { my ($fh, $name) = @_; open $fh, '<', $name or die $!; }