doc-base and `Can't locate PerlIO.pm in @INC ' during perl upgrade

Niko Tyni ntyni at debian.org
Tue Nov 4 12:56:12 UTC 2014


On Sun, Oct 26, 2014 at 03:18:12PM +0100, Robert Luberda wrote:
 
> Could you please look at the following doc-base error messages from
> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=758398#10 :

> Database error: Cannot read file `/var/lib/doc-base/info/status.yml':
> Can't locate PerlIO.pm in @INC (you may need to install the PerlIO
> module) (@INC contains: /etc/perl

>    $fully_functional = eval {
>                               require Debian::DocBase::InstallDocs;
[...]

> However this didn't help in case of PerlIO.pm, because YAML::Tiny module
> uses the module without any `use' statement. Could you please advise me,
> how to deal with this?
> BTW. Are there any other modules that might be used without prior
> declaration with `use module;'?

Sorry for the delay in responding. I see the problem but I'm afraid
I don't have good suggestions, short of adding 'require PerlIO' in
install-docs, which I can see is unfortunately fragile.

Other similar traps might be at least various Encode modules, via
   open(my $fh, "<:encoding(UTF-8)", "filename")
I expect there are others.

I suppose the best I can think of is wrapping all the run time
functionality in install-docs into eval {} blocks and handling the
"Can't locate" errors gracefully later. Of course, recovering may well
be harder at that point.

Apologies for not being able to help more,
-- 
Niko Tyni   ntyni at debian.org



More information about the pkg-perl-maintainers mailing list