On Wed, 15 Jun 2022 at 00:13, Graham Knop <haarg@haarg.org> wrote: > On Tue, Jun 14, 2022 at 6:02 PM Alexander Hartmaier > <alex.hartmaier@gmail.com> wrote: > > > > On Tue, Jun 14, 2022 at 11:33 AM Graham Knop <haarg@haarg.org> wrote: > >> > >> On Tue, Jun 14, 2022 at 8:15 AM Alexander Hartmaier > >> <alex.hartmaier@gmail.com> wrote: > >> > Look at some of the other modules using the return value of require > from the grep.metacpan.org link. > >> > >> Do you have a concrete example? > There are plenty of cases which are effectively "`require` is used instead of `do`", i.e. calling `require` and the subsequent code relies on the data, rather than truth of the return value. Some examples from just the first page of results - there are others on that page: https://grep.metacpan.org/search?qci=&q=%3D%20require&qft=&qd=AWS-Lambda my $app = require "$ENV{'LAMBDA_TASK_ROOT'}/app.psgi"; my $func = AWS::Lambda::PSGI->wrap($app); https://grep.metacpan.org/search?qci=&q=%3D%20require&qft=&qd=App-Alice my $config = {}; if (-e $self->fullpath) { $config = require $self->fullpath; https://grep.metacpan.org/search?qci=&q=%3D%20require&qft=&qd=App-Chart my $aref = require App::Chart::Gtk2::IndicatorModelGenerated; All of these are somewhat fragile: call the code twice or have something else `require` the relevant module/file first, and they'd have problems. However, given how often this pattern appears, require-returns-`builtin::true` may be too disruptive if strictly enforced? Keeping the original value _also_ doesn't seem like a good idea, `package Example; my $should_drop_out_of_scope = ...;` for example.Thread Previous | Thread Next