I am designing a "configurable object" in Perl.

This configurable object would at runtime advertise its public methods, read/write attributes, method parameters, method parameter types, and return type.

Another object, say the configmgr object, would query the configurable object at runtime and then determine its properties, methods, and parameters. (Is it possible for the configmgr to dynamically inherit the configurable object?)

The configmgr would allow the user, through a dynamically created gui or console display, to input the parameters. If a parameter requires an object reference, the user could use a name that maps to a reference.

The configmgr would then allow the user to run the object with the newly set configuration and view its readable attributes and outputs.

Once the user was happy with the state of the invoked or un-invoked configurable object and its configuration, the user could save the configmgr object using Storable or write out the configuration (and optionally the runtime state) to a config file using AppConfig.

Later the user could restore the object and view it or reconfigure it.

Then the user could chain the saved configurable objects together and run them.

For instance, one configurable object could take the saved ("persisted") output of another configurable object as input.

Or, in another instance, the user could create the configurable object (through the configmgr) and then run it with its saved configuration or get the persisted runtime state.

Furthermore, if at runtime an error occurred in the configurable object, the configmgr could pop up a gui or display and let the user dynamically reconfigure the object to correct the error. Then the user could again save the configurable object and resume execution.

The next step would be to have a collection object that held together a collection of configmgr objects (and perhaps their scripted relationship). The collection object would internally have methods to calculate dependencies between the configmgr objects. The collection object could inherit from the configmgr class, allowing the whole collection to be saved and later recreated.


In reply to Configurable Objects by hackdaddy

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.