Here's a simple module to demonstrate that
And here's a script that uses SomeModule
:
This script can call exp_one
and exp_two
from SomeModule
because these two functions are listed in @EXPORT
. Functions listed in @EXPORT
are by default exported into the user's namespace.
ok_one
, on the other hand, cannot be called directly as it is not listed in @EXPORT
. It can, however, be called so SomeModule::ok_one()
.
Here's another script:
Now, I specify the identifiers I want to have imported into my namespace (qw(ok_one ok_two)
). Accordingly, I can call these.
I cannot call exp_one (which I could call in the first script), because as soon as I begin specifying identifiers to be exported I need to specify all of them.
Of course, it will soon be tiresome to always indicate which functions I want to have imported. Therefore, I can define tags with the %EXPORT_TAGS
hash that groups multiple identifiers under a tag. For example, the tag all imports all functions. In my case, I just used the combined values of @EXPORT
and @EXPORT_OK
. This is demonstrated with the third script:
Lastly, I can import some functions, too:
No comments:
Post a Comment