Hi shemp,

What you could do is just create your parser functions as normal named functions, but also create a reference to each of them. You can then store those references in an array and use an index into that array to find the correct function to execute. Untested example (pseudo)code for this could be:

use strict; my @parsers; push @parsers, \&parser1; # Create a reference to parser 1 and push it + onto the array push @parsers, \&parser2; # Ditto for parser 2 ... sub parser1 { parse..parse..parse }; sub parser2 { parse_somewhat_differently };
When a record from a source, say source 2 comes in, you access it's parser with:
$parsers[$source_id]->( arguments ); # $source_id contains the source, + e.g. 2
I have a feeling that you can even automate the process of creating the @parsers array by playing symbol table games, but I'm not awake enough any more to take a decent shot at it. Perhaps some more experienced (and awake) monk will step in here.

CU
Robartes-


In reply to Re: Re: Re: strict refs on / off process time by robartes
in thread strict refs on / off process time by shemp

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.