Just an update to all on what I ended up doing. The Video::FourCC::Info module is now uploaded to CPAN and is slowly propagating across the mirrors.
I ended up using SQLite as a data backend. I dropped it into the lib/Video/FourCC directory, so that it is in the same place as Info.pm. The module finds the SQLite data via: # Look for the data file in the same folder as this module my $data = File::Spec->catfile( File::Basename::dirname(__FILE__), 'codecs.dat' ); Which might not be ideal and is thus subject to change in the future. But so far it looks pretty good. I made sure Module::Build would not ignore this file by adding this parameter: $builder->add_build_element('dat'); # where $builder is a Module::Build object It works on Windows (under Strawberry Perl) as well as Linux. An outstanding bug has to do with SQLite itself (or rather, the perl DBD::SQLite binding), because "sqlite_version" is used only once (in the upstream SQLite driver). That's why there are lots of failures right now for version 1.0. Some of them were fixed for 1.1, but I still haven't figured out how to best fix it. It seems DBD::SQLite isn't all that well maintained, and the bug has been outstanding in the Request Tracker for some time now. Cheers, Jonathan On Thu, Jan 15, 2009 at 12:19 AM, Ben Morrow <b...@morrow.me.uk> wrote: > > Quoth jonathan.i...@gmail.com ("Jonathan Yu"): >> All: >> >> I like the idea of using SQLite because it's small, runs on most >> operating systems and fast. It's also got less memory overhead, which >> is certainly a good thing. >> >> However, with respect to using File::ShareDir; the module finds the >> directory appropriately, but I'm at a loss as to how to configure >> Module::Build to install it there. >> >> I suppose I could list File::ShareDir as a build requirement and just >> force the file to be put where File::ShareDir says it should be, but >> it's definitely less elegant than Module::Install, where a subclass >> already provides functionality to put things in the Shared directory >> (I believe it's M::I::Shared) >> >> Any thoughts on Module::Build and sharedir files? > > If I'm reading the code right, you need to copy your shared files into > somewhere under blib/lib/auto/Foo/Bar for distribution Foo-Bar or module > Foo::Bar sometime during ACTION_build, and then it will get installed in > the right place later. Of course you should be using File::Spec instead > of specifying that path in Unix format, and by 'blib' I mean > $self->blib, and so on... > > However, I don't use M::B, so I could be wrong :). > > Ben > >