perl 通过 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_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 并将其放在双引号中有效

最新更新