The Perl interpreter uses directories contained in the internal array @INC to
find libraries. Cygwin's Perl 5.40.0-1 installation leaves several
directories uncreated but listed in @INC.
Like so (from $perl -V):

@INC:
        /usr/local/lib/perl5/site_perl/5.40/x86_64-cygwin-threads
        /usr/local/share/perl5/site_perl/5.40
        /usr/lib/perl5/vendor_perl/5.40/x86_64-cygwin-threads
        /usr/share/perl5/vendor_perl/5.40
        /usr/lib/perl5/5.40/x86_64-cygwin-threads
        /usr/share/perl5/5.40

------------------------------

Let's look at the error messages we get.

Can't stat /usr/local/lib/perl5/site_perl/5.40/x86_64-cygwin-threads:
No such file
or directory at C:\Users\Sally\Documents\Scripts\seekinc.pl line 30.
Can't stat /usr/local/share/perl5/site_perl/5.40: No such file or directory at
C:\Users\Sally\Documents\Scripts\seekinc.pl line 30.
Can't stat /usr/share/perl5/vendor_perl/5.40: No such file or directory at
C:\Users\Sally\Documents\Scripts\seekinc.pl line 30.

It's micro-optimization, sure, but having Perl stat non-existent
directories every time it runs; this is just not nice. And this is not the
only issue.

Observe the following, please:
------------------------------
@INCCount
/usr/local/share/perl5/site_perl/5.40 0
/usr/local/lib/perl5/site_perl/5.40/x86_64-cygwin-threads 0
/usr/lib/perl5/vendor_perl/5.40/x86_64-cygwin-threads 2
/usr/lib/perl5/5.40/x86_64-cygwin-threads 112
/usr/share/perl5/5.40 1287
/usr/share/perl5/vendor_perl/5.40 0
------------------------------

The left-hand column lists Perl's @INC and the right-hand numbers are
counts of the libraries or modules found under those parent directories.
No, I did not count them manually.

I wrote a simple script in Perl to generate these.

The 3 base directories with 0 files under them don't exist. For one example
of consequences: If one were to use cpanplus, it would want to place files
under /usr/local/share/perl5/site_perl/5.40 and suchlike. I love using
cpanplus. Watching it run the builds, tests and installations automatically
is very relaxing ;-).

These examples are all from a Perl installation I did this evening, with no
Perl ever installed before; completely "clean".

Please check your own installation of cygwin-perl. By the way, the script
used to investigate @INC (I call such programs "introspective" scripts) is
on GitHub at: https://github.com/somian/seekinc/blob/main/seekinc.pl

One further anomaly: In output of cygcheck:

perl                      5.40.0-1                     Incomplete

How do we fix this at Cygwin package build time?

-- 
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

Reply via email to