Groups | Search | Server Info | Login | Register
Groups > perl.module-authors > #3390
| Newsgroups | perl.module-authors |
|---|---|
| Path | csiph.com!newsfeed.xs4all.nl!newsfeed8.news.xs4all.nl!bofh.it!nntp.perl.org |
| Xref | csiph.com perl.module-authors:3390 |
| Return-Path | <dpchrist@holgerdanske.com> |
| Mailing-List | contact module-authors-help@perl.org; run by ezmlm |
| Delivered-To | mailing list module-authors@perl.org |
| Received | (qmail 11294 invoked from network); 14 Mar 2022 02:13:59 -0000 |
| Received | from xx1.develooper.com (147.75.38.233) by x6.develooper.com with SMTP; 14 Mar 2022 02:13:59 -0000 |
| Received | from xx1.develooper.com (xx1.develooper.com [127.0.0.1]) by localhost (Postfix) with SMTP id 2F3237C1C1 for <perlmail-module-authors@onion.perl.org>; Sun, 13 Mar 2022 19:13:59 -0700 (PDT) |
| Received | from postfix-inbound-v2-0.inbound.mailchannels.net (inbound-egress-6.mailchannels.net [199.10.31.238]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by xx1.develooper.com (Postfix) with ESMTPS id 70AEA7C18A for <module-authors@perl.org>; Sun, 13 Mar 2022 19:13:51 -0700 (PDT) |
| Received | from inbound-trex-5 (unknown [127.0.0.6]) by postfix-inbound-v2-0.inbound.mailchannels.net (Postfix) with ESMTP id 88B0280082 for <module-authors@perl.org>; Mon, 14 Mar 2022 02:13:50 +0000 (UTC) |
| ARC-Seal | i=1; s=arc-2022; d=mailchannels.net; t=1647224029; a=rsa-sha256; cv=none; b=herLbpow1GH/7rzEMfdR4rKwC5/bqp+pw0ffN1tzM1eSR3ja3QrUSQt6eQhqemP3RJufM6 WIwH+pZVNZ+9huzqWvkyF6if7g1glQv0qDwS8sv3V9Dsqr1ZyK2hawapUJEDxUN3Sct5Xm fDM+UILpACGYLBnz1MZzo4RdVff1pral92Gs+j0Px1OjJV5smdMonxb7xLRA9nVuavL+WW EU5AX9DEI7wEL9AnaoWY6KkCay0W9+l1pwjdZNgpl7+Lyqx2425HhikrKB3HJ1Z6r4BKLW 055DOVzexDS9m62lvxfmumSp2GfM7wa6YrSE0JVjrRLIbdXQGyEhRRghbYbcOQ== |
| ARC-Message-Signature | i=1; a=rsa-sha256; c=relaxed/relaxed; d=mailchannels.net; s=arc-2022; t=1647224029; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references:dkim-signature; bh=+1Tb0+reKN4CfuCV7fEGaCnslPu9zR7N2EVHQQ8DarM=; b=Zz2rcNGTJ+xhKY4Kbar5m/uY0Gtu9N1c1sYxnuP7vyB5OTKdFJDfAHr0+lajRfaM2TM6Zg cTv5yWHITgzhAHzqygYy1t1/16s21VXwRkE9MDoK4ZorBU34pL5tghRvBpQDQNsIFRPhLD f+pyorCo7Ww0coqve30mWq6ByyqxzW7Iw0nTWHWJ3imVUg5oL9sKItlB0+AWmy1IAJCMjQ vq8bSHIEbHpqoIOPT0fl0d0njAEbtGAMMmyFWTzqy7AnDV8CANo4z8F+BPVCSvwh3kVOE4 gUvjO0CGpyTT3jufoRrl5efq7PuN0szN6AbR3cjXuqfoecFzwr0SbSlPp2e0Rg== |
| ARC-Authentication-Results | i=1; inbound-rspamd-68c784b6dd-zs65d; none |
| Received | from holgerdanske.com (holgerdanske.com [184.105.128.27]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384) by 100.114.70.231 (trex/6.5.3); Mon, 14 Mar 2022 02:13:50 +0000 |
| X-Message-ID | bLRzhMjCzznsfmETGSjtGstJ |
| Authentication-Results | inbound.mailchannels.net; spf=pass smtp.mailfrom=dpchrist@holgerdanske.com; dkim=pass header.d=holgerdanske.com; dmarc=pass (policy=none; pct=10; status=pass) |
| Received-SPF | pass (inbound-dmarc-688d7756b6-g97k6: domain of holgerdanske.com designates 184.105.128.27 as permitted sender) client-ip=184.105.128.27; envelope-from=dpchrist@holgerdanske.com; helo=holgerdanske.com; |
| DKIM-Signature | v=1; a=rsa-sha256; c=relaxed/relaxed; d=holgerdanske.com; s=nov-20210719-112354; t=1647224024; bh=+1Tb0+reKN4CfuCV7fEGaCnslPu9zR7N2EVHQQ8DarM=; h=Received:Content-Type:Message-ID:Date:MIME-Version:User-Agent: Subject:Content-Language:To:References:From:In-Reply-To; b=SZG0BmssxeJMtF6K0oYVSxdCP8XBo3KukfW9+CEkxtQI6w284oLHXZ/1y0snCd0eP 7wzFEU/u/7XZdvrZ6jJD0OrEvxWu/RBZTim9BW2Ew65vJ3xihkMmI2WCQiPFSXCNBh ze6KZX1ZXGvinvldbkw0r7iTS2EWNOM3sMlivGP4KXV4Pv94rh3QP2o3cGqGcvI+ma xGAe6exy73qBuImyGk66eOkD2ERynylye0xeLKLtU1JskNxA+I9y5o8KEiC9u4aJhw +byOj3ds1WPWOW7ouvhABhI6v0pLj+APzregNGE9zfG7nivNK5rdZt2XzTRRuH5E6W Bh4eGTsreY3FUMa23HL05u13+yd6uniNB4e6z14Aezzkbi7BbFzLD2g0eIws4v1u9A iC59kk1r7zrKtji+zDh32zR3zD41c6fFRxpmiWIHc22fpHP3sx1Rge/CwFEK0lHuUS idSXugDFsKuTwiCsUoDPVlEWq0OVybMnPcAlUMh8oWIKPWxgRUUAEhsbf5v/A0QtcC cCUGomJvjhC6L1a5/aLDV6rw/Mued3E2pKpnSkI2tVe/qH3ANGFadGIaXE5XIhbG6u gBXlGIU0VEZakKiHKtK4xyFbAP7G0gzu80ssoiSy3Vagm+/pUmVglm6V+cMr1K0JZv ToeK/UzI1UuiXLw7dLLY9gjo= |
| Received | from 99.100.19.101 (99-100-19-101.lightspeed.frokca.sbcglobal.net [99.100.19.101]) by holgerdanske.com with ESMTPSA (TLS_AES_128_GCM_SHA256:TLSv1.3:Kx=any:Au=any:Enc=AESGCM(128):Mac=AEAD) (SMTP-AUTH username dpchrist@holgerdanske.com, mechanism PLAIN) for <module-authors@perl.org>; Sun, 13 Mar 2022 19:13:44 -0700 |
| Content-Type | multipart/mixed; boundary="------------QhLs0K6PEYjWknw1iqBHJ4fY" |
| Message-ID | <bb7d6bac-4e2b-602e-55f3-e453989fab17@holgerdanske.com> (permalink) |
| Date | Sun, 13 Mar 2022 19:13:44 -0700 |
| MIME-Version | 1.0 |
| User-Agent | Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.6.0 |
| Subject | Re: Exporter and subroutine circular dependencies between modules |
| Content-Language | en-US |
| To | module-authors@perl.org |
| References | <c4a1dd1b-bfa5-2991-271b-360a6bb1ea0a@holgerdanske.com> <a67a9dde-a2af-3842-1590-635a9509f7e9@cfa.harvard.edu> <8e3ac525-d759-365c-8e26-3f395a784308@gmail.com> |
| In-Reply-To | <8e3ac525-d759-365c-8e26-3f395a784308@gmail.com> |
| X-PMX-Version | 5.6.1.2065439, Antispam-Engine: 2.7.2.376379, Antispam-Data: 2022.3.14.15118 |
| X-PMX-Spam | Gauge=IIIIIIII, Probability=8%, Report=' HTML_00_01 0.05, HTML_00_10 0.05, ARCHIVE_ATTACHED 0, ATTACHMENT_EXT_X2 0, AUTH_RES_PASS 0, BODY_SIZE_6000_6999 0, BODY_SIZE_7000_LESS 0, DATE_TZ_NA 0, DKIM_ALIGNS 0, DKIM_SIGNATURE 0, GZ_ATTACHED 0, IN_REP_TO 0, LEGITIMATE_SIGNS 0, MSG_THREAD 0, NO_CTA_URI_FOUND 0, NO_URI_FOUND 0, NO_URI_HTTPS 0, REFERENCES 0, SPF_PASS 0, TAR_ATTACHED 0, __ATTACHMENT_NOT_IMG 0, __ATTACHMENT_SIZE_0_10K 0, __AUTH_RES_DKIM_PASS 0, __AUTH_RES_DMARC_PASS 0, __AUTH_RES_PASS 0, __BAT_BOUNDARY 0, __BODY_NO_MAILTO 0, __BOUNCE_CHALLENGE_SUBJ 0, __BOUNCE_NDR_SUBJ_EXEMPT 0, __CT 0, __CTYPE_HAS_BOUNDARY 0, __CTYPE_MULTIPART 0, __CTYPE_MULTIPART_MIXED 0, __DKIM_ALIGNS_1 0, __DKIM_ALIGNS_2 0, __DQ_NEG_HEUR 0, __DQ_NEG_IP 0, __FORWARDED_MSG 0, __FRAUD_MONEY_CURRENCY 0, __FRAUD_MONEY_CURRENCY_DOLLAR 0, __FROM_DOMAIN_NOT_IN_BODY 0, __FROM_NAME_NOT_IN_ADDR 0, __FROM_NAME_NOT_IN_BODY 0, __FUR_HEADER 0, __GZ_ATTACHED1 0, __GZ_ATTACHED2 0, __HAS_ATTACHMENT 0, __HAS_ATTACHMENT1 0, __HAS_ATTACHMENT2 0, __HAS_FROM 0, __HAS_MSGID 0, __HAS_REFERENCES 0, __HEADER_ORDER_FROM 0, __HIGHBITS 0, __IN_REP_TO 0, __MAIL_CHAIN 0, __MIME_TEXT_P 0, __MIME_TEXT_P1 0, __MIME_TEXT_P2 0, __MIME_VERSION 0, __MOZILLA_USER_AGENT 0, __NO_HTML_TAG_RAW 0, __RCVD_FROM_DOMAIN 0, __RCVD_PASS 0, __REFERENCES 0, __SANE_MSGID 0, __SUBJ_ALPHA_END 0, __SUBJ_ALPHA_NEGATE 0, __SUBJ_REPLY 0, __TAR_ATTACHED3 0, __TO_MALFORMED_2 0, __TO_NO_NAME 0, __URI_NO_MAILTO 0, __USER_AGENT 0, __blackholes.mail-abuse.org_ERROR , __zen.spamhaus.org_ERROR ' |
| Approved | news@nntp.perl.org |
| From | dpchrist@holgerdanske.com (David Christensen) |
Show key headers only | View raw
[Multipart message — attachments visible in raw view] - view raw
On 3/13/22 15:18, Shawn H Corey wrote:
> On 2022-03-13 18:08, Diab Jerius via module-authors wrote:
>>
>> require Exporter;
>> our @ISA = qw( Exporter );
>> our @EXPORT = qw( foo )
>>
> I prefer this way:
>
> # --------------------------------------
> # Exports
> use Exporter qw( import );
> our @EXPORT = qw( foo );
> our @EXPORT_OK = qw( );
> our %EXPORT_TAGS = (
> all => [ @EXPORT, @EXPORT_OK ],
> );
>
> This automatically creates a tag for `:all`.
Thank you for the reply. :-)
That approach does not solve the circular dependency issue:
2022-03-13 19:02:58 dpchrist@tinkywinky
~/samba/dpchrist/sandbox/perl/Exporter-circular-use
$ cat /etc/debian_version ; uname -a ; perl -v | head -n 2
9.13
Linux tinkywinky 4.9.0-17-amd64 #1 SMP Debian 4.9.290-1 (2021-12-12)
x86_64 GNU/Linux
This is perl 5, version 24, subversion 1 (v5.24.1) built for
x86_64-linux-gnu-thread-multi
2022-03-13 19:03:22 dpchrist@tinkywinky
~/samba/dpchrist/sandbox/perl/Exporter-circular-use
$ cvs diff
Index: Bar11.pm
===================================================================
RCS file:
/var/local/cvs/dpchrist/sandbox/perl/Exporter-circular-use/Bar11.pm,v
retrieving revision 1.1
diff -r1.1 Bar11.pm
9,11c9,14
< require Exporter;
< our @ISA = qw( Exporter );
< our @EXPORT = qw( bar );
---
> use Exporter qw( import );
> our @EXPORT = qw( bar );
> our @EXPORT_OK = qw();
> our %EXPORT_TAGS = (
> all => [ @EXPORT, @EXPORT_OK ],
> );
Index: Foo11.pm
===================================================================
RCS file:
/var/local/cvs/dpchrist/sandbox/perl/Exporter-circular-use/Foo11.pm,v
retrieving revision 1.1
diff -r1.1 Foo11.pm
9,11c9,15
< require Exporter;
< our @ISA = qw( Exporter );
< our @EXPORT = qw( foo );
---
> use Exporter qw( import );
> our @EXPORT = qw( foo );
> our @EXPORT_OK = qw();
> our %EXPORT_TAGS = (
> all => [ @EXPORT, @EXPORT_OK ],
> );
>
2022-03-13 19:03:24 dpchrist@tinkywinky
~/samba/dpchrist/sandbox/perl/Exporter-circular-use
$ ./foo11
main=7
foo=6
bar=5
Undefined subroutine &Bar11::foo called at Bar11.pm line 25.
And, I have doubts about use'ing Exporter and importing Exporter::import().
But, you have reminded me that it is better style to export nothing by
default (the demo script and modules used @EXPORT for brevity).
So, combining the ideas thus far:
BEGIN { our @EXPORT_OK = qw( foo ) }
use parent 'Exporter';
David
2022-03-13 19:06:46 dpchrist@tinkywinky
~/samba/dpchrist/sandbox/perl/Exporter-circular-use
$ ./Exporter-circular-use.t
ok 1 - foo00
ok 2 - foo01
ok 3 - foo10
Undefined subroutine &Bar11::foo called at Bar11.pm line 22.
not ok 4 - foo11
# Failed test 'foo11'
# at ./Exporter-circular-use.t line 24.
# got: 'main=7
# foo=6
# bar=5
# '
# expected: 'main=7
# foo=6
# bar=5
# foo=4
# bar=3
# foo=2
# bar=1
# '
Undefined subroutine &Bar12::foo called at Bar12.pm line 23.
not ok 5 - foo12
# Failed test 'foo12'
# at ./Exporter-circular-use.t line 24.
# got: 'main=7
# foo=6
# bar=5
# '
# expected: 'main=7
# foo=6
# bar=5
# foo=4
# bar=3
# foo=2
# bar=1
# '
ok 6 - foo21
ok 7 - foo22
ok 8 - foo33
ok 9 - foo44
1..9
# Looks like you failed 2 tests of 9.
Back to perl.module-authors | Previous | Next — Previous in thread | Next in thread | Find similar
Exporter and subroutine circular dependencies between modules dpchrist@holgerdanske.com (David Christensen) - 2022-03-13 13:13 -0700
Re: Exporter and subroutine circular dependencies between modules dpchrist@holgerdanske.com (David Christensen) - 2022-03-13 18:43 -0700
Re: Exporter and subroutine circular dependencies between modules dpchrist@holgerdanske.com (David Christensen) - 2022-03-13 19:13 -0700
Re: Exporter and subroutine circular dependencies between modules dpchrist@holgerdanske.com (David Christensen) - 2022-03-13 19:29 -0700
Re: Exporter and subroutine circular dependencies between modules dpchrist@holgerdanske.com (David Christensen) - 2022-06-05 19:05 -0700
csiph-web