Re: iterate over the use-d modules
Andy Bach <[email protected]> Tue, 1 Oct 2024 14:54:50 -0500
| Newsgroups | gmane.comp.lang.perl.beginners |
|---|---|
| Message-ID | <CACV6rW+cxtO44Jt_G54+oH4XYTmB2Et1hBh2Rn6XG=jwkKqWaA@mail.gmail.com> |
--0000000000006c71c506236fb2cf
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Well, I was close ;-> Thanks, I knew it was somewhere.
perl -E 'use strict; use Carp; my @mod =3D map { s/.pm//; $_ } keys %INC ;
say "$_: ", eval "\$" . $_ . "::VERSION" foreach @mod'
Exporter: 5.76
feature: 1.64
strict: 1.12
overloading: 0.02
Carp: 1.52
warnings: 1.51
On Tue, Oct 1, 2024 at 11:30=E2=80=AFAM Levi Nystad-Johansen via beginners =
<
[email protected]> wrote:
> @INC contains all locations modules can be loaded from.
> %INC contains all modules that have been loaded.
>
> See https://perldoc.perl.org/perlvar#%INC
>
> say for keys %INC;
>
> -Levi
>
>
> -------- Opprinnelig melding --------
> Den 01.10.2024 17:31, Andy Bach skrev:
>
> Look at perldoc for "require" but I believe what you want is @INC in plac=
e
> of your @used. Hmm, maybe not
> % perl -E 'use strict; say for ( @INC );'
> /Library/Perl/5.34/darwin-thread-multi-2level
> /Library/Perl/5.34
> /Network/Library/Perl/5.34/darwin-thread-multi-2level
> /Network/Library/Perl/5.34
> /Library/Perl/Updates/5.34.1
> /System/Library/Perl/5.34/darwin-thread-multi-2level
> /System/Library/Perl/5.34
> /System/Library/Perl/Extras/5.34/darwin-thread-multi-2level
> /System/Library/Perl/Extras/5.34
>
> On Tue, Oct 1, 2024 at 5:20=E2=80=AFAM Luca Ferrari <[email protected]>=
wrote:
>
>> Hi all,
>> is there a way to iterate over the used modules, I mean every symbol
>> loaded with use?
>> I would like to do something like:
>>
>> use Foo;
>> use Bar;
>>
>> say ${ $_ }::VERSION for ( @used );
>>
>> and get something like
>>
>> say $Foo::VERSION;
>> say $Bar::VERSION;
>>
>>
>> Thanks,
>> Luca
>>
>> --
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>> http://learn.perl.org/
>>
>>
>>
>
> --
>
> a
>
> Andy Bach,
> [email protected]
> 608 658-1890 cell
> 608 261-5738 wk
>
>
--=20
a
Andy Bach,
[email protected]
608 658-1890 cell
608 261-5738 wk
--0000000000006c71c506236fb2cf
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">Well, I was close ;-> Thanks, I knew it was somewhere.<=
div>=C2=A0perl -E 'use strict; use Carp; my @mod =3D map { s/.pm//; $_ =
} keys %INC ; say =C2=A0"$_: ", eval "\$" . $_ =C2=A0. =
"::VERSION" foreach @mod'<br>Exporter: 5.76<br>feature: 1.64<=
br>strict: 1.12<br>overloading: 0.02<br>Carp: 1.52<br>warnings: 1.51<br></d=
iv></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_att=
r">On Tue, Oct 1, 2024 at 11:30=E2=80=AFAM Levi Nystad-Johansen via beginne=
rs <<a href=3D"mailto:[email protected]">[email protected]</a>> wro=
te:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px =
0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><p dir=3D"lt=
r">@INC contains all locations modules can be loaded from. <br>
%INC contains all modules that have been loaded.</p>
<p dir=3D"ltr">See <a href=3D"https://perldoc.perl.org/perlvar#%INC" target=
=3D"_blank">https://perldoc.perl.org/perlvar#%INC</a></p>
<p dir=3D"ltr">say for keys %INC;</p>
<p dir=3D"ltr">-Levi</p>
<div>
<br>
<br>
-------- Opprinnelig melding --------=20
<br>
Den 01.10.2024 17:31, Andy Bach <u></u>
skrev:=20
<br>
<blockquote>
<div dir=3D"ltr">
Look at perldoc for "require" but I believe=C2=A0what you wan=
t is=C2=A0@INC in place of your=C2=A0@used.=C2=A0 Hmm, maybe not=20
<div>
% perl -E 'use strict; say =C2=A0for ( @INC );'=20
<br>
/Library/Perl/5.34/darwin-thread-multi-2level=20
<br>
/Library/Perl/5.34=20
<br>
/Network/Library/Perl/5.34/darwin-thread-multi-2level=20
<br>
/Network/Library/Perl/5.34=20
<br>
/Library/Perl/Updates/5.34.1=20
<br>
/System/Library/Perl/5.34/darwin-thread-multi-2level=20
<br>
/System/Library/Perl/5.34=20
<br>
/System/Library/Perl/Extras/5.34/darwin-thread-multi-2level=20
<br>
/System/Library/Perl/Extras/5.34=20
<br>
</div>
</div>
<br>
<div class=3D"gmail_quote">
<div dir=3D"ltr" class=3D"gmail_attr">
On Tue, Oct 1, 2024 at 5:20=E2=80=AFAM Luca Ferrari <<a href=3D"mai=
lto:[email protected]" target=3D"_blank">[email protected]</a>> wrot=
e:=20
<br>
</div>
<blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;bor=
der-left:1px solid rgb(204,204,204);padding-left:1ex">
Hi all,=20
<br>
is there a way to iterate over the used modules, I mean every symbol=
=20
<br>
loaded with use?=20
<br>
I would like to do something like:=20
<br>
<br>
use Foo;=20
<br>
use Bar;=20
<br>
<br>
say ${ $_ }::VERSION for ( @used );=20
<br>
<br>
and get something like=20
<br>
<br>
say $Foo::VERSION;=20
<br>
say $Bar::VERSION;=20
<br>
<br>
<br>
Thanks,=20
<br>
Luca=20
<br>
<br>
--=20
<br>
To unsubscribe, e-mail: <a href=3D"mailto:beginners-unsubscribe@perl.=
org" target=3D"_blank">[email protected]</a>
<br>
For additional commands, e-mail: <a href=3D"mailto:beginners-help@per=
l.org" target=3D"_blank">[email protected]</a>
<br><a href=3D"http://learn.perl.org/" rel=3D"noreferrer" target=3D"_b=
lank">http://learn.perl.org/</a>
<br>
<br>
<br>
</blockquote>
</div>
<br clear=3D"all">
<div>
<br>
</div><span class=3D"gmail_signature_prefix">-- </span>
<br>
<div dir=3D"ltr" class=3D"gmail_signature">
<br>
a=20
<br>
<br>
Andy Bach,=20
<br><a href=3D"mailto:[email protected]" target=3D"_blank">afbach@gmail.=
com</a>
<br>
608 658-1890 cell=20
<br>
608 261-5738 wk
</div>
</blockquote>
<u></u>
</div></blockquote></div><br clear=3D"all"><div><br></div><span class=3D"gm=
ail_signature_prefix">-- </span><br><div dir=3D"ltr" class=3D"gmail_signatu=
re"><br>a<br><br>Andy Bach,<br><a href=3D"mailto:[email protected]" target=
=3D"_blank">[email protected]</a><br>608 658-1890 cell<br>608 261-5738 wk</d=
iv>
--0000000000006c71c506236fb2cf--