On Sat, Jun 11, 2022 at 10:37 AM Neil Bowers <neilb@neilb.org> wrote: > > Can someone show an example, ideally on CPAN, where this gets used? > > I _think_ you were asking for an example of someone using the return value > from a require. In which case: > > > https://grep.metacpan.org/search?qci=&q=%3D%20require&qft=&qd=Acme-MetaSyntactic-Themes&f=lib%2FAcme%2FMetaSyntactic%2Funicode.pm > > This is in BooK’s Acme::MetaSyntactic::unicode module (yeah, Acme): > > if ( $] >= 5.006 && $] < 5.007003 ) { > eval { $data = require 'unicode/Name.pl'; }; > } > elsif ( $] >= 5.007003 ) { > eval { $data = require 'unicore/Name.pl'; }; > > # since v5.11.3, unicore/Name.pl creates subroutines > # they end up in our namespace, so get rid of them > undef *code_point_to_name_special; > undef *name_to_code_point_special; > } > > Guessing there may be other examples on CPAN – this is just the first one > I found with grep.metacpan.org. > > Neil > > Thanks for the grep.metacpan.org link, haven't thought about it for finding examples. I've looked at some others and using the return value of a require call is used quite frequently. So option 3 isn't a good one in my opinion, as a module changed to use the feature, most probably with 'use v5.38;' not thinking about the enabled feature, which would lead to another module failing because of the changed behavior.Thread Previous | Thread Next