note hippo <p>Don't use this sort of construct:</p> <code>if ($pdbline =~ /OD2 ASP/ or /NE2 HIS/)</code> <p>You are testing 2 possibilities here. The first one is <c>$pdbline =~ /OD2 ASP/</c> which may be fine, but the second one is <c>/NE2 HIS/</c> which by default will test <c>$_</c> which is probably not what you want. Either combine the 2 regular expressions into 1 (left as an exercise) or test them individually like this:</p> <code>if ($pdbline =~ /OD2 ASP/ or $pdbline =~ /NE2 HIS/)</code> <p>The "Use of uninitialized value" reports you see are warnings, not errors. However, the fact that they are presented to you indicates that you are attempting to do something with an uninitialised value which is usually not what you intend.</p> <p>In this specific case, your references to items like <c>$x1[$Znx]</c> on line 58 will give that if the <c>$Znx</c> is uninitialised. You will need to trace through the logic to see how that might happen and correct it.</p> <p>Best advice is:</p> <ul><li>use [doc://strict]; # Always</li> <li>Lose the prototypes unless you have a very, very good reason for keeping them.</li> <li>Don't use "or" like you were.</li> </ul> <p>Best of luck with the rest of it.</p> 1065326 1065326