in reply to Use of uninitialized value in subroutine entry

Please also see Short, Self-Contained, Correct Example. Note that the exercise of creating a short code and data example for us may clarify to you what the problem is without need for further consultation.

BTW: From the very limited code presented in the OP, one can guess that the problematic values in the subroutine entries of the
    $csv->print ($ips, \@record);
    $csv->print ($hosts,\@record);
statements are $ips and $hosts. If @record were not defined, nothing at all would work (I doubt the code would even compile), so pay particular attention to these former variables.

Give a man a fish:  <%-{-{-{-<