perl通过Getopt::Long传递选项卡

perl通过Getopt::Long传递选项卡,perl,tabular,getopt-long,Perl,Tabular,Getopt Long,我有一个简单的脚本,希望用户能够在其中指定分隔符: #!/usr/bin/perl use strict; use warnings; use Getopt::Long; my $sep = "&"; GetOptions('sep:s' => \$sep); my @list = ('a','b','c'); print join($sep,@list); print "\n"; 但如果我似乎没有找到传递“\t”并作为脚本中的选项卡进行计算的方法: perl ~/perl_te

我有一个简单的脚本,希望用户能够在其中指定分隔符:

#!/usr/bin/perl
use strict;
use warnings;
use Getopt::Long;
my $sep = "&";
GetOptions('sep:s' => \$sep);
my @list = ('a','b','c');
print join($sep,@list);
print "\n";
但如果我似乎没有找到传递“\t”并作为脚本中的选项卡进行计算的方法:

perl ~/perl_tests/sep.pl -sep \t
perl ~/perl_tests/sep.pl -sep \\t
perl ~/perl_tests/sep.pl -sep '\t'
perl ~/perl_tests/sep.pl -sep '\\t'
perl ~/perl_tests/sep.pl -sep "\t"
perl ~/perl_tests/sep.pl -sep "\\t"

两者都不会产生我想要的输出,即命令行结果中由制表符分隔的值。

这实际上是一个shell问题,因为您正在从shell调用perl脚本

在bash中,这是有效的

perl sep.py -sep $'\t'
同时使用ctrl v键,然后按tab键,并将其置于双引号中也有效

您是否尝试过实际的制表符?例如,
-sep“$(echo-E“\t”)”