4 days in Amsterdam with porters

Deprecation of $[

Last year, we went over all of the long-standing deprecations in core. All but $[ were given an official EOL. $[ was not because we could not come up with a plan.

There are 3 use cases we expect are going on:

  • using $[ in a conditional
  • Assigning to $[
  • Assigning to $[ but making it = 0 which doesn't do …

grep.metacpan.org at the Perl Toolchain Summit

Introducing the new way to grep CPAN: https://grep.metacpan.org/
My co-worker Nicholas and I were honored to be invited to attend the Perl Toolchain Summit in Lyon, France last week. It was a great experience for both of us.

Earlier this year, I needed to answer some questions being put to me by the toolchain gang about the scope of the problem of build/test/install without ="https://blogs.perl.org/users/todd_rinaldo/2016/11/how-removing-from-inc-i…

Reviewing Perl 5 . in @INC at the Perl Toolchain Summit

Location: Lyon, France
Attending: SawyerX, Merijn (Tux) Brand, Todd (toddr) Rinaldo, Nicolas (atoomic) Rochelemagne, Lee Johnson, Aaron (arc) Crane, Leon (leont) Timmermans, Matthew (alh) Horsfall, Kenichi (charsbar) Ishigaki, Graham (haarg) Knop, Karen (ether) Etheridge, Stefan (nine) Seifert, Aristotle

We met to discuss the recent changes to @INC for Perl 5.26.

A timeline and summary of CVE-2016-1238 was given to attendee…

How removing . from @INC is about to break CPAN

In Perl 5.26, it will no longer be a safe assumption to assume . is in @INC. This is a good move towards a more secure Perl, but will break the installation of many CPAN modules. For those of you wondering why this was done, see this post for more information.

Many CPAN modules try to do things like: use inc::Module::Install; This depends on . being in @INC. If you invoke Makefile.PL without it, the script will not even run.

We have come up with several ways to mi…

What happened to . in @INC

In Perl, module loads have always attempted to look for the module you refer to in the current working directory (not necessarily the script location). It has always been this way in Perl. This goes back to the keyword "do" which precedes "require". When this was originally coded, it was also common to include . in your PATH.

Convention changed somewhere in the 90's. It is now considered a bad practice to include . in your PATH. Most languages also do not attempt to look for . in @INC. During my research earlier this year, I found that of all of the scripted languages, only Ruby used …