in reply to Where to keep images so a module can find them

If these are part of your module distribution, and installed when the module is installed, consider putting them in an auto subdirectory. So, if your module is named Foo::Bar and installed somewhere like:
/usr/local/lib/perl5/site_perl/5.8.7/i686-linux/Foo/Bar.pm
put your Images in
/usr/local/lib/perl5/site_perl/5.8.7/i686-linux/auto/Foo/Bar/Images/*
As far as I know, there's no abstraction to make this easy, either in the install script or at runtime, except for particular cases such as XS module dynamic libraries.

But you can take a peek through the EU::MM/M::I/M::B::Cookbook docs and see if there's anything about the former. And the code for the latter can be stolen from DynaLoader.pm.

Update: I was asked "why auto" in particular, rather than somewhere else, perhaps just alongside the module in the module tree. You have to put the files somewhere, and in the module tree, at a known location relative to the .pm, in a directory already treated as special by things looking at the module directories sounds pretty good.

Replies are listed 'Best First'.
Re^2: Where to keep images so a module can find them
by xdg (Monsignor) on Sep 04, 2006 at 23:00 UTC
    As far as I know, there's no abstraction to make this easy

    File::ShareDir and Module::Install

    -xdg

    Code written by xdg and posted on PerlMonks is public domain. It is provided as is with no warranties, express or implied, of any kind. Posted code may not have been tested. Use of posted code is at your own risk.

      File::ShareDir fits the bill perfectly. I did poke about a bit in CPAN but didn't find it. (Update: I wonder how well it works with only'd modules.)

      What part of Module::Install should I be looking at?

        Sorry -- that should have been Module::Install::Share

        -xdg

        Code written by xdg and posted on PerlMonks is public domain. It is provided as is with no warranties, express or implied, of any kind. Posted code may not have been tested. Use of posted code is at your own risk.