use strict; use warnings; use Getopt::Long; use File::Wildcard; use Data::Dumper; my $foo = File::Wildcard->new(path=>"./*.tab.txt"); my @arrayFiles; GetOptions( "extract_all"=>\&goIt ); sub goIt{ while (my $file = $foo->next){ push @arrayFiles, $file; } #do something with @arrayFile #through a subroutine } print Dumper(\@arrayFiles);