in reply to any idea how push (@$user,"$ent_date\t$message\t$firewall\t$service");

Please enclode your code in <code> ...</code> tags

$match_flag = 0; foreach $control (@control_array) { if ($control eq $user) { $match_flag = 1; last; } } if ($match_flag == 0) { ## We have not seen this user yet put an entry in the control_arra +y... push (@control_array, $user); } push(@$user,"$ent_date\t$message\t$firewall\t$service"); }

(Theres a } that shouldn't be there at the end)

The push at the end is adding a string to an arrayref called $user. The string consists of a tab-separated list of some unknown scalars: $ent_date, $message, $firewall and $service. Nobody can tell you what's in these variables because you haven't told us anything about them:(