I just wanted to mention, this is probably a better way to do it.
First, the module:
package PrintName; use strict; use warnings; use parent qw/ Exporter /; our @EXPORT_OK = qw/ print_name /; sub print_name { my($name) = @_; print "Hello, $name\n"; } 1;
The camel-casing of the package name is more of a style issue, but seems to be a fairly common practice. We're subclassing Exporter, but only exporting the function on-demand. The underscore casing of the subroutine name is purely a style issue, and there's no real community consensus of whether or not it should be applied to function names, but I tend to prefer it. We're using a lexically scoped variable for the parameter of the subroutine also, and the scope is constrained to the sub. We're not invoking the subroutine from within the module, and particularly not doing it with an undefined value.
And here's how the caller might look:
package main; use strict; use warnings; use lib "C:/Perl64/lib/printname"; use PrintName qw/ print_name /; print_name("John");
The use lib ... construct is often seen as the second part to a FindBin idiom. ...just something to keep in mind.
In the caller, we're explicitly importing print_name, and then calling it.
Dave
In reply to Re: Custom Module question
by davido
in thread Custom Module question
by imfaus
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |