1

GetOptions在我的 Perl 代码中用作开关。我有一个需要用特殊字符分隔的数组。目前,我可以编写以下代码。

&GetOptions('sep:i');
if ($opt_sep) {
    $sep = "\.";
} else {
    $sep = "\/";
}

当我尝试-sep 1时,我的输出将是Flower.Red.Small. 如果没有这个语句-sep 0,我的输出将是Flower/Red/Small. 知道如何准确引用用户定义的任何特殊字符来分隔我的输出语句吗?分隔符可以是以下任何字符:

# @ ^ * & % ; -

4

2 回答 2

1

您是否要求以下内容?

my @fields = split /\Q$opt_sep/, $str;
于 2013-10-24T16:11:51.930 回答
0

您可以使用s(字符串)而不是i(整数)。请参阅Getopt::Long

use warnings;
use strict;
use Getopt::Long qw(GetOptions);

my %opt = (sep => '/');
GetOptions(\%opt, 'sep=s');

my @stuff = qw(Flower Red Small);
print join($opt{sep}, @stuff), "\n";

__END__

script.pl -sep /
Flower/Red/Small

script.pl -sep .
Flower.Red.Small

script.pl -sep @
Flower@Red@Small
于 2013-10-24T16:43:30.203 回答