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
- Random
- t
- 00-load.t
- manifest.t
- pod-coverage.t
- pod.t
- xt
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.
No matter how hysterical I get, my problems are not time sensitive. So, relax, have a cookie, and a very nice day!
Lady Aleena
|