develooper Front page | perl.perl5.porters | Postings from February 2017

Re: The tricky issue of do()

Thread Previous | Thread Next
From:
Dominic Hargreaves
Date:
February 27, 2017 14:54
Subject:
Re: The tricky issue of do()
Message ID:
20170227142452.GI17396@urchin.earth.li
On Mon, Feb 27, 2017 at 03:07:47PM +0100, Christian Walde wrote:
> On Mon, 27 Feb 2017 14:56:23 +0100, Sawyer X <xsawyerx@gmail.com> wrote:
> 
> >>>The point has been raised by haarg and leont that that might not be
> >>>entirely straight-forward due to shared code between use/require, but i
> >>>think in this case backwards compatibiliy should trump, even if the core
> >>>code looks a little more ugly as a result.
> >>Although I lean towards the backwards compatility camp, note that we can't
> >>provide *exact* backcompat even if we wanted to: the old behaviour of do()
> >>was strictly to search @INC, and @INC just happened often to have '.' as
> >>its last member.
> >>
> >>The most obvious backcompat strategy is to make 'do' always treat @INC as
> >>having an implicit trailing '.' when loading a 'do' file; but this will
> >>mean that code which explicitly removed '.' from @INC for security or
> >>other reasons will suddenly have 'do' loading files from locations it
> >>previously wouldn't have.
> >
> >This is why I believe a warning would be useful here instead.
> 
> And correction of the documentation, which was only correct for 99% of cases before, but after '.' removal would be correct for only 1%.

I merged my doc patch from rt#130832 at the weekend. This should make
the documentation consistent with current behaviour. Of course, it would
need a further tweak if warnings were to be added.

Dominic.

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About