Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Perl程序中获取选项_Perl_Command Line_Arguments - Fatal编程技术网

在Perl程序中获取选项

在Perl程序中获取选项,perl,command-line,arguments,Perl,Command Line,Arguments,我在谷歌上搜索了一段时间,奇怪的是没有找到任何能回答我问题的东西 我想把-n作为一个选项传递给程序,其中n是一个整数 这就是我所拥有的: if($ARGV[0] eq "-A_NUMBER") 是否有某种类型的通配符可以用于此?因此,对于任何负号后跟任何整数(或字符)的情况,该条件都为真。使用 if ($ARGV[0] =~ /^-\d/) 此正则表达式先匹配负号,然后匹配数字 “^”将匹配锚定到行的开头,“\d”是表示数字的转义字符 if ($ARGV[0] =~ /^-\d/) 此正则

我在谷歌上搜索了一段时间,奇怪的是没有找到任何能回答我问题的东西

我想把-n作为一个选项传递给程序,其中n是一个整数

这就是我所拥有的:

if($ARGV[0] eq "-A_NUMBER")
是否有某种类型的通配符可以用于此?因此,对于任何负号后跟任何整数(或字符)的情况,该条件都为真。

使用

if ($ARGV[0] =~ /^-\d/)
此正则表达式先匹配负号,然后匹配数字

“^”将匹配锚定到行的开头,“\d”是表示数字的转义字符

if ($ARGV[0] =~ /^-\d/)
此正则表达式先匹配负号,然后匹配数字


“^”将匹配锚定到行的开头,“\d”是一个转义字符,表示一个数字

我建议读取该字符比仅检查@ARGV更冗长,但更稳健

我建议读取该字符比仅检查@ARGV更冗长,但更稳健

谢谢!这管用!^是否表示线锚的开始?这是如何工作的?它是一个正则表达式,匹配-后跟$ARGV[0]开头的一位数字。所以它将匹配-1,-2,-29,-2或树,但不是-2或-3。试着查找perl正则表达式很好,我已经更改了它来回答我自己的问题。thanks@TomTanner:
-\d
不匹配-29;)@mpe:正则表达式将匹配<代码>-29包含一个
-
,后跟一个数字(
\d
)。谢谢!这管用!^是否表示线锚的开始?这是如何工作的?它是一个正则表达式,匹配-后跟$ARGV[0]开头的一位数字。所以它将匹配-1,-2,-29,-2或树,但不是-2或-3。试着查找perl正则表达式很好,我已经更改了它来回答我自己的问题。thanks@TomTanner:
-\d
不匹配-29;)@mpe:正则表达式将匹配<代码>-29包含一个
-
,后跟一个数字(
\d
)。。。。或者看看。但不要重新发明轮子,使用CPAN,使用经过良好测试和优化的模块。。。。或者看看。但不要重新发明轮子,使用CPAN,使用经过良好测试和优化的模块。