This is more of a silly style question but the issue is cropping up more and more in the code I'm working on. Which of the following code block is more "correct"? Better yet, which provides better performance.
foreach (@nodes)
{
my $tdev = parse_node($_);
push (@device, $tdev) if defined($tdev);
}
foreach (@nodes)
{
push (@device, parse_node($_) if defined(parse_node($_);
}
My guess is that using the 2nd method would be faster, but only if parse_node is only called once for real. I'm afraid that the sub would get called twice and thus be twice as slow. On the other hand, creating a temp variable for each entry must have some overhead to worry about. In reality it doesn't matter for this project, but I'd like to know before I make this mistake in a bad place.
-
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.
|