| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Originally, 'require ::Foo::Bar' would try to load /Foo/Bar.pm.
The previous commit changed it so that ::Foo::Bar mapped to Foo::Bar,
and so loaded Foo/Bar.pm in the @INC path.
This commit takes the different approach of, instead of mapping, making
any bareword require that starts with '::' into an error instead.
It introduces a new error message:
$ perl -e'require ::Foo::Bar'
Bareword in require must not start with a double-colon: "::Foo::Bar"
$
See the thread at:
http://www.nntp.perl.org/group/perl.perl5.porters/2012/07/msg189909.html
( I originally used '"::"' rather than 'a double-colon', but that
made the message a bit unpenetrable:
Bareword in require must not start with "::": "::Foo::Bar"
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
At runtime in require, validate the generated filename after translation
of '::' to '/' (and possible conversion from VMS to Unix format) to keep
the code simpler. Reject empty module names, module names starting with
'/' or '.' (ie absolute paths, hidden files, and '..'), and module names
containing NUL bytes or '/.' (ie hidden files and '..').
Add a test for Perl_load_module(), and check that it now rejects module
names which fall foul of the above rules.
Most of these can't trigger for a sinple bareword require since the
illegal module name will already have been rejected during parsing. However,
the Perl_load_module() fakes up a rquire optree including a bareword
OP_CONST, which *isn't* restricted by the lexer.
Note that this doesn't apply to non-bareword pathnames: these are both
unaffected:
require "/foo/bar.pm";
$x = "/foo/bar.pm"; require $x;
[ This is cherry-picked from a branch Nicholas wrote 4 years ago, but
which was never merged. I've kept the body of the diff the same, modulo
rebasing, but re-worded the commit title and message.
Only one test was changed: the final one in load-module.t, since a
\0 in a pathname is now trapped earlier and gives a "can't locate" error
instead. For the same reason, it also required the addition of
"no warnings 'syscalls';".
- DAPM ]
|
|
|
|
|
| |
I'm not sure that's in the right section, but I think it's a better
fit than the others I considered.
|
| |
|
|
|
|
|
| |
This has been deprecated since v5.16, with a deprecation message
displayed starting in v5.22.
|
|
|
|
| |
This has been deprecated since v5.22
|
|
|
|
| |
These were deprecated in v5.20
|
|
|
|
| |
As scheduled for 5.26, this construct will no longer be accepted.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=810156
|
|
|
|
| |
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=776614
|
|
|
|
|
|
|
| |
The previous presentation looked a bit like an incomplete placeholder
expansion.
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=246542
|
|
|
|
| |
(Manually cherry picked from commit 72ccbefa77099a0bf1b7c2cb9f29685ed7d9938d)
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
This reverts commit 19d6c3854e96d89bf4dc2d874df433beac27ee8b.
|
|
|
|
|
| |
These were discovered while testing the Pod::Checker that is intended to
be used in 5.25.
|
| |
|
| |
|
|
|
|
|
|
|
| |
Give people a heads up that in the next major perl release, subroutine
signatures may no longer populate @_ by default.
See http://nntp.perl.org/group/perl.perl5.porters/235332.
|
|
|
|
|
| |
Only the text of these should be present in a delta, with a link to the
full explanation. Most of perldelta conformed to this, but not all.
|
| |
|
|
|
|
|
| |
I also removed one instance of a 5.23-only bug, which isn't relevant to
a dot zero delta
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
* behaviour -> behavior
* =over -> =over 4
* Add =items for consistency
* Capitalization fixes
|
| |
|
|
|
|
| |
Some of this was suggested by Jarkko Hietaniemi
|
|
|
|
| |
This fixes the 5.24 part of [perl #127899].
|
|
|
|
| |
(Thanks, Ed Avis!)
|
| |
|
| |
|
| |
|
|
|
|
| |
We say something here that is no longer true; update it.
|
|
|
|
|
| |
This includes deleting some bug fixes for things introduced in the 5.23
series, and so not relevant to a dot zero perldelta
|