What have I done wrong, and how may I fix it?
UPDATE: Duh ... what follows below is pretty much useless. The error message already tells us what
$fi is.
It's actually
1 though it should be the fully qualified path to pdldoc.db.
Sorry, I don't have any other brilliant ideas to offer at the moment :-(
I don't exactly know the answer to either question.
I would try changing /usr/lib/x86_64-linux-gnu/perl5/5.30/PDL/Doc.pm from:
while (my $fi = pop @{$this->{File}}) {
open IN, $fi or
barf "can't open database $fi, scan docs first";
to:
while (my $fi = pop @{$this->{File}}) {
print "\$fi: $fi\n";
open IN, $fi or
barf "can't open database $fi, scan docs first";
(The last line of the above excerpts is, of course, the "line 468" that's throwing the error.)
Next, re-run
pdldoc -a slice which should then tell you what $fi is.
With that change made, on my Windows installations of PDL, it reveals:
$fi: C:/_64/perl526_630/site/lib/PDL/pdldoc.db
which places pdldoc.db in the same directory as Doc.pm, and therefore suggests that you would want to be seeing:
$fi: /usr/lib/x86_64-linux-gnu/perl5/5.30/PDL/pdldoc.db
Where we go from there depends upon the result that you get ... assuming you have the permissions required to edit files in /usr/lib .....
Also, does /usr/lib/x86_64-linux-gnu/perl5/5.30/PDL/pdldoc.db exist ?
UPDATE: When I said "I would try changing /usr/lib/x86_64-linux-gnu/perl5/5.30/PDL/Doc.pm", I meant that's what I would do if I was using a perl in /usr/lib that was throwing that error.
Of course, I would in fact never even use a perl located in that (or any other system) directory.
Cheers,
Rob