↑がなんでforeachにしてるかわからんが。表示させて確かめれ。俺はこうだ。
$PASSFILE = "data.log";
open(FILE,"$PASSFILE");
while(<FILE>) {
  s/[\n\r]*$//g;
  my($id,$pass,$writer,$name) = split(/\t/);
  $PASS{"$id"} = $pass;
  $WRITER{"$id"} = $writer;
  $NAME{"$writer"} = $name;
  print "\$PASS{\"$id\"} = $PASS{\"$id\"}\n";
  print "\$WRITER{\"$id\"} = $WRITER{\"$id\"}\n";
  print "\$NAME{\"$writer\"} = $NAME{\"$writer\"}\n\n";
}
close FILE;