【发布时间】:2013-10-24 16:01:25
【问题描述】:
我在我的 Perl 代码中使用GetOptions 作为开关。我有一个需要用特殊字符分隔的数组。目前,我可以编写以下代码。
&GetOptions('sep:i');
if ($opt_sep) {
$sep = "\.";
} else {
$sep = "\/";
}
当我尝试-sep 1 时,我的输出将是Flower.Red.Small。如果没有此语句或 -sep 0 ,我的输出将是 Flower/Red/Small。知道如何准确引用用户定义的任何特殊字符来分隔我的输出语句吗?分隔符可以是以下任何字符:
# @ ^ * & % ; -
【问题讨论】:
-
与您的主要问题无关,但最好通过
my %opts=(sep=>"\/"); &GetOptions (\%opt, 'sep:i');提供具有默认值的选项,然后在其余代码中简单地使用$opt{sep}。 -
还有一个建议:您不需要在子例程调用的开头使用 &。你可以写 GetOptions(...)
-
@DVK ,我指的是整数对吗?如果我分配
sep:i,特殊字符无效? -
@annel - 当然。 “复制/粘贴被认为有害”。接得好。
sep:s.
标签: perl special-characters getopt