use strict; my $base_loc = "/base/location"; my @results = ( 'QFU010508.865714.tar.gz' , 'AAL_AGG.738208.tar.gz' , 'QFU010508.870496.tar.gz' , 'QFU010508.870512.tar.gz' , 'QFU010508.1017611.tar.gz' , 'QFU010508.1018350.tar.gz' , 'QFU020508.784543.tar.gz' , 'QFU020508.735377.tar.gz' , 'QFU020508.784632.tar.gz' , 'QFU020508.784637.tar.gz' , 'QFU020508.784641.tar.gz' , 'QFU020508.869793.tar.gz' ); foreach my $tar_file ( @results ) { my $path_to_file = $base_loc . "/" . $tar_file; my $extracts = Archive::Tar->new( $path_to_file ); print "Goin to sleep...\n"; sleep(5); if( !defined $extracts ) { print "INFO: Could not find : $tar_file file or Archive is not valid\n"; } else { print "INFO: Processed $tar_file file\n"; } #Destroy the object undef $extracts; print "Object should get destroyed now, sleeping again.\n"; sleep(5); }