小编Pra*_*mar的帖子

在Perl中,当我使用@_ [0],@ _ [1]等来访问子例程的参数时,为什么会收到警告?

下面的代码.

sub max 
    {
        if (@_[0] > @_[1]) 
        {
            @_[0];
        }
        else
        {
            @_[1];
        }
    }
    print "biggest is ".&max(37,25);
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我收到以下警告,

Scalar values @_[0] better written as $_[0] at file.pl line 3.
Scalar values @_[1] better written as $_[1] at file.pl line 3.
Scalar values @_[0] better written as $_[0] at file.pl line 5.
Scalar values @_[0] better written as $_[0] at file.pl line 9.
biggest is 37.
Run Code Online (Sandbox Code Playgroud)

虽然我得到了正确的输出,但我想知道这个警告背后的原因是什么,因为我认为@_在子程序中使用是合适的$_.

perl warnings

9
推荐指数
2
解决办法
3597
查看次数

如何暂停,恢复和停止Sikuli程序?

假设我正在运行Sikuli程序,并且想在特定位置暂停该程序,然后过一段时间后,我想从暂停的那个位置恢复该程序,而不影响过程。然后我想停止该过程并退出。我停下来的那一点直到应该保存为止。西库里有可能吗?如果是,那怎么办?

process execution sikuli

4
推荐指数
2
解决办法
7647
查看次数

是否使用两个加法运算符在python中添加两个有效的整数?

我刚开始学习python.我只是想尝试打印功能.我最后写了下面的代码.

print(2 ++ 2)
Run Code Online (Sandbox Code Playgroud)

我期望Python解释器抛出一个错误,因为我把两个加法运算符放在一起,而不在它们之间放置一个整数.相反,python解释器没有抛出任何错误并返回4作为输出.我也试过下面的代码: -

print(4 -- 2)
Run Code Online (Sandbox Code Playgroud)

输出是6.

有人能解释一下这些吗?

python operators python-2.7 python-3.x

4
推荐指数
1
解决办法
113
查看次数

错误:无法读取"n":tcl中没有此类变量

proc rep {name} {
    upvar $name n 
    puts "nm is $n"
}
Run Code Online (Sandbox Code Playgroud)

在上面的过程中,' name'是一个传递给名为' rep' 的过程的参数.当我运行这个程序时,我得到了" error : Can't read "n" : no such variable".任何人都可以告诉我这个错误的可能原因是什么.

variables tcl upvar

3
推荐指数
1
解决办法
9518
查看次数

Perl中的赋值运算符(=)如何在内部工作?

假设num是一个数组,

@num = (1 .. 10);
Run Code Online (Sandbox Code Playgroud)

要找到它的长度,我们使用以下表达式,

$num = @num;
Run Code Online (Sandbox Code Playgroud)

然后我$num在下面的作业中使用了相同的内容.

@slicenum = $num[1 .. 6];
Run Code Online (Sandbox Code Playgroud)

我知道,对于切片数组,我们使用@num而不是$num.它运行良好,没有任何错误.但是当我打印出@slicenum它的值时,它给了我2个结果.

@slicenum = $num[1 .. 6, 10 .. 20];
Run Code Online (Sandbox Code Playgroud)

对于上述作业,我得到了1.

虽然遗嘱值为$num10,但请解释上述两项任务中发生的情况.

perl assignment-operator

2
推荐指数
1
解决办法
149
查看次数

如何从.sikuli文件夹中检索代码?

当我打开.sikuli文件夹时,它只有图像.所以我想知道是否有任何方法可以在不使用Sikuli IDE的情况下查看或检索Sikuli代码.

我可以从.sikuli文件夹中找到它吗?

sikuli

2
推荐指数
1
解决办法
580
查看次数

如何解决正则表达式中的嵌套量词?

陷入困境

my $count=grep {/$str_check/} @arr_name ;
Run Code Online (Sandbox Code Playgroud)

什么时候

$str_check = 'C/C++'
Run Code Online (Sandbox Code Playgroud)

它抛出 Nested quantifiers in regex; marked by <-- HERE in m/'C/C++ <-- HERE '/ at acr_def_abb_use.pl line 288

我试着改成

my $count=grep {/"$str_check"/} @arr_name ;
Run Code Online (Sandbox Code Playgroud)

my $count=grep {/'$str_check'/} @arr_name ;
Run Code Online (Sandbox Code Playgroud)

但两者都没有奏效。任何人请帮我解决这个问题。

regex perl grep

1
推荐指数
1
解决办法
4939
查看次数

perl元字符的混淆

当我运行以下程序时,它没有给我任何结果("").
情景1: -

$var = "A STITCH IN TIME SAVES NINE";
       if ($var =~ /[1..9]/i) {
         print "FOUND\n"
      }
Run Code Online (Sandbox Code Playgroud)

但是当我在'..'运算符之前和之后添加空格时,它会抛出"Found and is"作为结果.

情景: - 2

 $var = "A STITCH IN TIME SAVES NINE";
           if ($var =~ /[1 .. 9]/i) {
             print "FOUND\n"
          }
Run Code Online (Sandbox Code Playgroud)

谁能解释一下这里发生了什么?

perl metacharacters

0
推荐指数
1
解决办法
120
查看次数