Your Module.pm doesn't set up a separate namespace from which functions may be imported by another package. All your functions are compiled into the caller's namespace:
Extending your Module.pm functions slightly
require Exporter; @ISA = qw(Exporter); @EXPORT =qw\fun1 fun2\; @EXPORT_OK = qw\fun3\; @EXPORT_FAIL= qw\fun4\; sub fun1{print "\nfun1 in package " . __PACKAGE__ } sub fun2{print "\nfun2 in package " . __PACKAGE__ } sub fun3{print "\nfun3 in package " . __PACKAGE__ } sub fun4{print "\nfun4 in package " . __PACKAGE__ }
the script
use Module; fun1; fun2; fun3; fun4;
outputs
fun1 in package main fun2 in package main fun3 in package main fun4 in package main
Nothing exported, nothing imported. All is in the default package 'main'.
Use a package statement in your Module.pm:
package Module; require Exporter; @ISA = qw(Exporter); ...
Running the script again yields
fun1 in package Module fun2 in package Module
In reply to Re: Exporter Module
by shmem
in thread Exporter Module
by anbutechie
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |