USB-Descriptor is a project mainly written in Perl, it's free.
Perl module for generating USB device descriptors