in reply to Use of uninitialized value in substitution iterator in variable expansion

Unless you're worried that $line might include things that could be interpolated and shouldn't be, you could just evaluate the whole $line in double quotes:
no warnings 'uninitialized'; $line = eval qq{"$line"};
Update: Probably the most hazardous thing might be any double-quotes that were in the file. If the lines will be free of unbalanced braces, this would be better:
$line = eval "qq{$line}";

Caution: Contents may have been coded under pressure.