I had to do something vaguely-similar to this once, and what I decided to do was to define each SQL-statement definition (there were hundreds of them) as consisting of SQL text, with the appropriate placeholders, and a separate list of parameter-names, which were taken from a list of (use) constants. The number of entries in the parameter-name list had to exactly match the number of placeholders in the query definition (which was basically hard-coded into the app). Anyhow, to run a query you specified the name of the query and a hash of named parameters. When building the DBI request, the (positional...) parameters were resolved by name ... by my Perl code, before running the query. It was easy to write and worked very well in practice.
I freely admit that I find the notion of a :name syntax to be quite intriguing, and instantly see how such a thing could be generally implemented (even to the point of idly wondering if it could be a Perl fee-chur, maybe through some mix-in package?). It would have been an improvement over my original idea to be sure.
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:
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, 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, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.
| & || & |
| < || < |
| > || > |
| [ || [ |
| ] || ] ||