Dear Monks,
here is what I'd like to be able to implement:
- creates variables and/or functions in file foo.pl. e.g.:
$text = "foo"; sub func { return "something"; } ... ...

- now I would like to load this file so that its content is encapsulated either in a hash table or in an object. E.g. in file main.pl, I would like to use a function such as capsule that would create such object:
$obj = capsule("foo.pl");
so that I can now access $obj{"text"}, or $obj->text... I could also call $obj->func().

- in general there would be many different files such as foo.pl, and I want to access all variables from a top-level script.
In fact I want to make all declarations from foo.pl which seem to be global, as local from the top level script. I don't want to use different namespaces.

thanks in advance! nictam

In reply to Encapsulate function and variables by nictam

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.