#!/usr/bin/perl use warnings; use strict; my @files = find_files(shift); foreach my $file (@files) { eval { process_file($file) }; die "Could not process $file: $@" if $@; } sub find_files { .... } sub process_file { .... } #### package My::FileProcessor; use strict; use warnings; use base 'Exporter'; our @EXPORT_OK = qw(find_files process_file); sub find_files { .... } sub process_file { .... } 1; #### #!/usr/bin/perl use warnings; use strict; use My::FileProcessor qw(find_files process_file); my @files = find_files(shift); foreach my $file (@files) { eval { process_file($file) }; die "Could not process $file: $@" if $@; }