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.
my $tdev = parse_node($_);
push (@device, $tdev) if defined($tdev);
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.