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

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.