下面的代码.
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)
虽然我得到了正确的输出,但我想知道这个警告背后的原因是什么,因为我认为@_
在子程序中使用是合适的$_
.
假设我正在运行Sikuli程序,并且想在特定位置暂停该程序,然后过一段时间后,我想从暂停的那个位置恢复该程序,而不影响过程。然后我想停止该过程并退出。我停下来的那一点直到应该保存为止。西库里有可能吗?如果是,那怎么办?
我刚开始学习python.我只是想尝试打印功能.我最后写了下面的代码.
print(2 ++ 2)
Run Code Online (Sandbox Code Playgroud)
我期望Python解释器抛出一个错误,因为我把两个加法运算符放在一起,而不在它们之间放置一个整数.相反,python解释器没有抛出任何错误并返回4作为输出.我也试过下面的代码: -
print(4 -- 2)
Run Code Online (Sandbox Code Playgroud)
输出是6.
有人能解释一下这些吗?
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
".任何人都可以告诉我这个错误的可能原因是什么.
假设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.
虽然遗嘱值为$num
10,但请解释上述两项任务中发生的情况.
当我打开.sikuli
文件夹时,它只有图像.所以我想知道是否有任何方法可以在不使用Sikuli IDE的情况下查看或检索Sikuli代码.
我可以从.sikuli
文件夹中找到它吗?
陷入困境
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)
但两者都没有奏效。任何人请帮我解决这个问题。
当我运行以下程序时,它没有给我任何结果("").
情景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)
谁能解释一下这里发生了什么?