td;dr version:

A newly dnf updated Perl was now failing to access/load an accessible shared object file
in a perl subdirectory of my home. I moved that home subdir out of the way.
Now it works.
(But I still have to go back and resolve what might now be missing.
 I.e. What was in that subdir and do I still need it for something?)


On Sat, Feb 19, 2022 at 2:03 PM Iosif Fettich <ifettich@gmail.com> wrote:

... snip ...
Try to identify which cpan you're using (the one from Fedora repos
installed via dnf or the one from CPAN) and try to reinstall (or
remove...) that one.

Looks like you've mixed Perl modules installed from CPAN with others
installed from Fedora. That's not always working.

I was using the Fedora distributed 'cpan'.

And yes, I was (and always have) installed additional modules
via CPAN where Fedora doesn't have those modules.  (Trouble is that
even when Fedora can deliver one of those packages, they aren't
named the same and so it's hard to find what package to install.)

And then... What can you do when Fedora doesn't have it packaged?
Ignore CPAN.  I think not.  My gut feeling today is.  Why doesn't
Fedora distribute stuff that doesn't break CPAN?


On Sat, Feb 19, 2022 at 2:17 PM Tom Horsley <horsley1953@gmail.com> wrote:
On Sat, 19 Feb 2022 12:58:50 -0500
Fulko Hew wrote:

> Can anyone suggest where to start?

Run the command under strace to see what strange locations it is
picking up perl or perl modules from.

I didn't need to.  One of my experiments showed me that perl was trying to load
a.so file from a home subdir (/home/fhew/perl5...) and it wasn't succeeding.
However the file was there and was accessible.

That error led me to google for that, and I found a Bugzilla entry
https://bugzilla.redhat.com/show_bug.cgi?id=1590973
that led me to move that subdir out of the way.

And that has resolved the issue.

Now I have the time to go back and look at what and why I needed to install those other libraries.

On Sun, Feb 20, 2022 at 8:30 AM Sam Varshavchik <mrsam@courier-mta.com> wrote:

... snip ...
 

Looks like you have installed additional Perl modules, bypassing Fedora's 
packaged perl RPMs. This is likely resulted in unintentional corruption or 
incompatibility with your base Fedora perl installation, in some unknown 
manner that nobody, I'm afraid, can diagnose for you.

Actually, it's more like Fedora installed/upgraded some packages that were
incompatible with what was previously installed and running.
 
> Can anyone suggest where to start?
> For example... Why is it trying to reload Scalar::Util?

Who knows. Attempting to elicit logic from an illogical state of affairs is 
unlikely to succeed.

At this point, it might be faster for you to simply wipe everything and 
reinstall Fedora.

Faster. No, I think not.
A raw install, usually entails about 2 days of nerve wracking copying
migration, tweaking and testing to get back into the working state
I was migrating from.  I want to avoid that at all costs.
 

... snip ...

 
Afterwards, try not to use cpan in combination with the system-installed 
perl. First of all, there is a very likely possibility that whatever module 
you needed, there's already a Fedora RPM for it. Install it, and call it a 
day.

One of the great features of Perl, _is_ CPAN.  To ignore CPAN is to ignore
most of its vast ecosystem.  Sure I understand that Fedora isn't going to
re-package every Perl module.  Perhaps Fedora people could design a package
mechanism that would, in effect, 'cpan install' modules rather than distribute
a (static) pre-built module?

If you do need a very custom Perl ecosystem, with CPAN and all those bells 
and whistles: you should build your own Perl core from scratch. Install it 
somewhere else, in /usr/local maybe. Use CPAN with it, to your heart's 
content, without touching the system perl.

I hear you, but this is the first time in 25 years of Fedora and Perl, that I've
ever seen anything like this happen to me.

On Sun, Feb 20, 2022 at 9:32 AM Patrick Dupre <pdupre@gmx.com> wrote:
perl-Scalar-Util is not a rpm fedora package

but
what about
perl-Scalar-List-Utils
which provides
perl(Scalar::Util) ?

That was just a symptom, not the issue. 
My guess is that while installing a module via CPAN (one that Fedora doesn't distribute)
That module needed Scalar::Util, and so it installed it too.
That's what CPAN does, it resolves all dependencies, across all of Perl.
If I wasn't using CPAN, then
a) I would have had to have known that it was going to need Scalar::Utils,
b) I would then also have to go and find what Fedora package contained it.
   And as you showed, the name isn't the same.  That would take a lot of work
   to hunt down the packages that contain the modules.
... repeat for all perl module dependencies.
... and then what do you do when there isn't a Fedora version of the module?

Anyway, problem solved, and I hope these notes might help someone else in the future.