in reply to Re: Where to put data that goes with a module?
in thread Where to put data that goes with a module?
Hi. I know it has been almost two months since I asked this, but I got frustrated then, so decided to let this sit for a while. So now I have calmed down a bit, I can dig in.
So, today I decided to give File::ShareDir a go on the command line, and I got the answer I was looking for initially. The main directory for external files a module needs is lib/auto. So now I know where to put the external data files and can use File::ShareDir to hopefully get them. I have not tried this yet but will shortly. Here is what I think the top of my module will look like, in this case I am using one of my favorites, Random::Color.
package Random::Color; use v5.10.0; use strict; use warnings; use Exporter qw(import); use File::ShareDir qw(module_dir); use Fancy::Rand qw(fancy_rand); use Fancy::Open qw(fancy_open); our $VERSION = '1.000'; our @EXPORT_OK = qw(random_color); my $directory = module_dir('Random::Color'); my @Crayola_crayons = fancy_open("$directory/Crayola_crayon_colors.txt +");; my @MandMs = fancy_open("$directory/MandMs_colors.txt");
Also, I am assuming when I go to package Random::Color the file list inside the package will be something like this.
- Random-Color
- Changes
- ignore.txt
- Makefile.PL
- MANIFEST
- README
- lib
- auto
- Random
- Color
- Crayola_crayon_colors.txt
- MandMs_colors.txt
- Color
- Random
- Random
- Color.pm
- Color.pod
- auto
- t
- 00-load.t
- manifest.t
- pod-coverage.t
- pod.t
- xt
- boilerplate.t
Am I on the right track here? I got the base of this structure from Discipulus's tutorial.
As an aside, I finally started using git because of that tutorial. How to use git was explained very well there. I am so very grateful for it!
Update: I tried it, it works as expected, I'm happy! Thank you for the recommendation.
My OS is Debian 10 (Buster); my perl versions are 5.28.1 local and 5.16.3 or 5.30.0 on web host depending on the shebang.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^3: Where to put data that goes with a module?
by swl (Parson) on Aug 26, 2020 at 22:18 UTC |