The data is already Data::Dumper-ized in 03modlist.data.gz! No need to parse anything, except toss down to the first blank line, then eval the rest of the file!
Hehe... I spent over a half hour looking for something exactly like this, to no avail. In fact, writing the script only took half as long as the search... you'd think that they would link to the 03modlist.data.gz on the module page, eh? :)