It seems your usage of L depends on a "feature" that was deprecated over 20 years ago: It's setting up an AUTOLOAD function in the UNIVERSAL package, so that function calls such as Data::Dump::pp are sent to AUTOLOAD.
The module's tests only test a method call, and its synopsis only shows a method call. In fact, the breakage of the module was reported in #131571, and in the module's repository as #2. If I interpret the fix correctly, I think the module was never intended to work for regular function calls.
At the moment, I don't have any good ideas for a replacement. It's still possible to call Data::Dump->pp(), but that will pass the package as the first argument:
$ perl -wMstrict -ML -e 'Data::Dump->pp("x")' ("Data::Dump", "x")
Note that using -M actually doesn't necessarily make the one-liners longer:
$ perl -wMstrict -ML -e 'Data::Dump::pp("x")' $ perl -wMstrict -MData::Dump=pp -e 'pp("x")'
In reply to Re: Perl 28 broke L: How to fix?
by haukex
in thread Perl 28 broke L: How to fix?
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |