note
philipbailey
<p><del>Because $SIRtrue is true whenever /SPECint_base/ matches, this line:</del></p>
<del><c>if ($SIRtrue && !($_ =~ /SPECint_base/)){</c></del>
<p><del>is equivalent to:</del></p>
<del><c>if ($SIRtrue && !$SIRtrue){</c></del>
<p><del>That "if" statement can never be true. A similar argument applies to the final "if" statement. No assignment will ever be made to the %SIR or %SFR hashes.</del></p></del>
<p>You might also wish to note that regex matches in Perl are performed by default on the $_ variable. See [doc://perlretut]. So you can replace:</p>
<c>if ($_ =~ /SPECint_base/){
</c>
<p>with this:</p>
<c>if (/SPECint_base/){
</c>
<p>Update: of course [limzz]'s reply is correct. But we still have not heard from the OP exactly what the behaviour of the program is. There is nothing in the code shown to cause an infinite loop.</p>
912023
912023