Can't use an undefined value as an ARRAY reference at /usr/lib/perl5/site_perl/5.005/Archive/Tar.pm line 736. #### use strict; use Archive::Tar; my ($dirname,$file); $dirname = "path_to_dir"; opendir(DIR,$dirname) or die "unable to open $dirname : $|"; while(defined($file = readdir(DIR))){ my $tar = Archive::Tar->new(); $tar->read("$file", 1); my @tar_files = $tar->list_files(); $tar->extract(@tar_files); } closedir(DIR);