我正在使用GetOptions充当我的perl代码中的开关。我有一个需要通过特殊字符分开的数组。目前我可以编写以下代码。
&GetOptions ('sep:i');
if ($opt_sep){
$sep = "\.";}
else {$sep = "\/";}
应用此-sep 1
时,我的输出将为Flower.Red.Small
,如果没有此语句或-sep 0
,我的输出将为Flower/Red/Small
。任何想法都要引用任何特殊内容用户定义分隔输出语句的字符?分隔符可以是# @ ^ * & % ; -
的任何字符。提前感谢。
答案 0 :(得分:1)
您是否要求以下内容?
my @fields = split /\Q$opt_sep/, $str;
答案 1 :(得分: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