use IO::Uncompress::Unzip; my $sn=$fips2state->{$sfips}.'2010.sf1'; my $zf=$dir0.'/sf1/'.$sn.'.zip'; my $mf=$fips2state->{$fips}.'geo2010.sf1'; ; my $member = IO::Uncompress::Unzip($zf, Name => $mf); while (<$member>) { #... pull out datums AREALAND AREAWATR POP100, create density } close $member;