Dear Perl wizards: I need to learn how to import arguments into a module. For example, I want to create a module that stores some stuff for faster later access. I understand that this can be done in different ways, but let's do it with a "static" module. So here is a simplified version of what I want to accomplish;
package main; use cacher "/etc"; my $fstab_wc = cacher::wc("fstab");
This is really a package that is all static. My package itself should do the following: pick up the argument from the use statement (here '/etc') or use a default (say, '/tmp'), and build a hash.
package cacher; use strict; use warnings; use warnings FATAL => qw{ uninitialized }; # larry, this should have b +een part of warnings. ... BEGIN { my %cachehash; my @saved_pkg_args; sub import { ... pick off the arguments, here /etc/ ... ... allow for a default ... ... how?? ... } use File::Glob qw(bsd_glob); foreach my $dir (bsd_glob(@saved_pkg_args, !"GLOB_NOCHECK")) { foreach my $file (bsd_glob("$dir/*")) { $cachehash{"$dir/$file"} = `wc $dir/$file`; } } sub wc { return($cachehash{$_[0]}); } }
so, how do I get the arguments in a simple way?? /iaw4

In reply to Skeleton For Import to Package? by iaw4

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.