How many modules?

| Perl | 2 Comments

Often out of curiosity, and perhaps due to an acute case of extreme boredom, I like to see what is going on behind the scene, e.g. within the deepest internals of good old perl.

Take for example the number and type of perl modules being loaded from a single use statement.

Since I've been playing alot with Moose lately, I'll use that as an example.

Roll up sleeves, cross your finger and fire up a terminal session and enter the following command:

$ perl -e 'use Moose; print join("\n", sort keys %INC)'

Lo and behold you will see a list of seventy-seven or some appear before your eyes:

Moose does not export its sugar to the 'main' package.
AutoLoader.pm
B.pm
Carp.pm
Carp/Heavy.pm
Class/MOP.pm
Class/MOP/Attribute.pm
...
overload.pm
re.pm
strict.pm
vars.pm
warnings.pm
warnings/register.pm

If you try Catalyst instead of Moose, the list will be even longer (169).

So what am I trying to prove? Not much I guess except for the fact that perl allows you to acquire much interesting insight with it's wonderful world of one-liners.

(What does the very first line 'Moose does not export its sugar to the 'main' package.' really mean?)

See Perl Medic by Peter J. Scott for an excellent read.

2 Comments

Saying 'use Moose' whilst in package main (i.e. in a simple script) is probably not what you want (as Moose is for building classes, and having a class called 'main' is a bad idea, as it already has a special meaning for perl).

Ergo, if you use Moose in main then none of the Moose sugar (such as the keywords 'has', 'with' etc) are exported..

You want to either say:

perl -e'use Moose ();' # Explicitly doesn't import anything.

or

perl -Moose -e'#CODE' # use 'oose', Moose for one liners ;)

Random entries

Here are some random entries that you might be interested in:

Recent Assets

  • tegen-par-2024-2nd-place.jpeg
  • stanford-reunion.png
  • kiff.png
  • hoid.png
  • Dad-in-front-of-log-cabin.png
  • mistborn-trilogy.png
  • 2024-03-Heren1-27h.png
  • three-body-problem.png
  • 10CC.png
  • minds-and-machines.jpeg
  • puglia.png
  • 2023-09-24-jong-tegen-oud-1.jpg

Recent Comments

Golf Handicap

Information

This personal weblog was started way back on July 21, 2001 which means that it is 7-21-2001 old.

So far this blog contains no less than 2518 entries and as many as 1877 comments.

Important events

Graduated from Stanford 6-5-1979 ago.

Kiffin Rockwell was shot down and killed 9-23-1916 ago.

Believe it or not but I am 10-11-1957 young.

First met Thea in Balestrand, Norway 6-14-1980 ago.

Began well-balanced and healthy life style 1-8-2013 ago.

My father passed away 10-20-2000 ago.

My mother passed away 3-27-2018 ago.

Started Gishtech 04-25-2016 ago.