in reply to pci.ids to a complex data structure

Your my %pci_ids declaration isn't right .. first, should be (), not {} since it's a hash, not a hashref. second, ( "9710", devices => { ... } ) is an odd number of elements that will be complained about (you're using use strict; use warnings; right?)

In your print attempt, i think (not sure since the %pci_ids isn't right) that you want the values, not the keys ..

check out perldata and perldsc for more info, too