Parse::CPAN::Packages::Fast is about an order of magnitude faster and uses only 40% as much memory. Neither, however, offer a way to iterate through the list without first creating the entire list in memory.