http://www.perlmonks.org?node_id=390520


in reply to passing delimiters on command line

I use to pass a tab (or other) delimiter to a Perl script too. There I give the delimiter as the last parameter and don't escape it at all (it works at least under Win2k).

The output is delimited by tabs as I wanted it.

Perhaps the difference is, that I don't use $" = "\t", I print out the delimiter I got from the user between each data "per hand" in the print statement, as print $data1, $delimiter, $data2, $delimiter, ..., $datan, "\n";.

If you want to put the delimiter into $", you could use sprintf to print it into that variable. That may be safer than eval.