Premise: There's nothing that can be done with run-time introspection that cannot be done (better) by compile-time decision taking.
sub what_does_it_return {
return rand(1) > 0.5 ? [] : {};
}
# bad example, but illustrates the essence
Sometimes your data comes from the outside, (for example through a serialization), and if you don't know its structure in advance, you have three choices:
- Press everything into the same structue (for example through normalization, and then store everything into SQL-like tables)
- Create wrapper classes that let you use a fixed static type
- Create dynamic classes at run time, and work with reflection / run-time inspection
Number one is unhandy and ugly, and number two basically means building a (primitive) meta-object protocol that allows run time inspection on top of the existing object model.
If the object model of your programming language is powerful enough, there's no need for that. You can just use native objects for data with a format that's not known at compile time. Which implies less code to write, specifically one abstraction layer that you don't need anymore.
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|