If you use foreach (@type), the special variable $_ is assigned the values of @type one after one. In your code, you are not using the variable $_. On the contrary, you output @type, the array you are iterating over. You probably wanted to iterate over the indexes, something like
for (0 .. $#type) {
print FH qq("$type[$_]","$date[$_]","$loc[$_]","$title[$_]"\n);
}
or, with a named loop variable:
for my $index (0 .. $#type) {
print FH qq("$type[$index]","$date[$index]","$loc[$index]","$title[$index]"\n);
}
Note that if your columns might contain newlines or double quotes, you would be better off with Text::CSV.