develooper Front page | perl.perl5.porters | Postings from June 2022

Re: Pre-RFC: yield true feature

Thread Previous | Thread Next
From:
Alexander Hartmaier
Date:
June 13, 2022 10:21
Subject:
Re: Pre-RFC: yield true feature
Message ID:
CAB49QrYDJpvq0Mtb5VMUTPETRUn-rn_i2h5PSt7aRLEk0NcBEA@mail.gmail.com
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


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