如何引用特殊字符的getoptions?

时间:2013-10-24 16:01:26

标签: perl special-characters getopt

我正在使用GetOptions充当我的perl代码中的开关。我有一个需要通过特殊字符分开的数组。目前我可以编写以下代码。

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

应用此-sep 1时,我的输出将为Flower.Red.Small,如果没有此语句或-sep 0,我的输出将为Flower/Red/Small。任何想法都要引用任何特殊内容用户定义分隔输出语句的字符?分隔符可以是# @ ^ * & % ; -的任何字符。提前感谢。

2 个答案:

答案 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