in reply to "Use of uninitialized value" due to empty elements in an array

$line_split[0] will only be undefined if $line doesn't contain any other character than \t (including being empty). And the fact it's undefined stems from @line_split not having any entries. So, you may do something like:
if (@line_split && $line_split[0] eq "") { # Has empty leading fields }
or
if (!@line_split || $line_split[0] eq "") { # Has empty leading fields, or no fields at all }
depending on what you want to do if there are no fields at all.