in reply to Re: the variable is not getting assigned
in thread the variable is not getting assigned

Even if you found a fix that seems to make it work, do not ignore the good advices GrandFather (and others) gave you. To add to them:

my $temp; my $code; my $info; my $count = 0;

Generally variables should be declared in the innermost lexical scope in which they're actually needed rather than all at the top.

my $length = scalar@contents;

no need for that explicit scalar. And as a matter of style, Perl is a free form language: try to adjust whitespace to improve readability. (Or to degrade it - but only if you're playing obfu!)

for(my $i=0;$i<=$length;$i++) {

As a general rule, there are situations in which C-style for loops are preferrable. But they're rare! more commonly it is recommendable to use Perl-style ones, and in particular in this case I don't see what the former buys you over the latter.

if($temp == 1) { $tier = "WEB"; } if($temp == 2) { $tier = "APP"; } if($temp == 3) { $tier = "DB"; } if($code1 != 0) { $severity = 1; } if($code1 = 0) { $severity = 5; }

These smell like you may save some complexity and use a hash instead. That would make the code more maintainable as well: you'd just have to add/remove/modify keys accordingly.