我想使用变量的值(例如由命令行选项固定)作为列表分隔符,使该值成为特殊字符(换行符、制表符等)。
不幸的是,由于以下两个打印语句的行为不同,这种天真的方法不起作用:
my @tab = ("a","b","c");
# block 1 gives expected result:
# a
# b
# c
{
local $" = "\n"; #" let us please the color syntax engine
print "@tab";
}
# block 2 gives unwanted result:
# a\nb\nc
{
use Getopt::Long;
my $s;
GetOptions('separator=s' => \$s);
local $" = "$s"; #" let us please the color syntax engine
print "@tab";
}
知道我可以更正块 2 以获得想要的结果(块 1 产生的结果)吗?