有一个perl程序,中state的用法错误
来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/01 12:16:28
有一个perl程序,中state的用法错误
程序如下:
/usr/bin/perl
use strict;
sub greet{
state @people;
my $num;
foreach (@_){
push (@people,$_);
}
$num = @people;
if($num == 1){
print "\n你是第一个来的人!\n";
}else{
print "\n$people[$#people-1]已经比你先到了 \n";
}
}
###开始进行一些测试#########################
&greet("tom");
#greet("Lily");
#greet("wangzi");
报错:
Array found where operator expected at ./Geet1.pl line 5,at end of line
(Missing operator before )
syntax error at ./Geet1.pl line 5,near "state @people"
Global symbol "@people" requires explicit package name at ./Geet1.pl line 5.
Global symbol "@people" requires explicit package name at ./Geet1.pl line 8.
Global symbol "@people" requires explicit package name at ./Geet1.pl line 10.
Global symbol "@people" requires explicit package name at ./Geet1.pl line 14.
Global symbol "@people" requires explicit package name at ./Geet1.pl line 14.
Execution of ./Geet1.pl aborted due to compilation errors.
程序如下:
/usr/bin/perl
use strict;
sub greet{
state @people;
my $num;
foreach (@_){
push (@people,$_);
}
$num = @people;
if($num == 1){
print "\n你是第一个来的人!\n";
}else{
print "\n$people[$#people-1]已经比你先到了 \n";
}
}
###开始进行一些测试#########################
&greet("tom");
#greet("Lily");
#greet("wangzi");
报错:
Array found where operator expected at ./Geet1.pl line 5,at end of line
(Missing operator before )
syntax error at ./Geet1.pl line 5,near "state @people"
Global symbol "@people" requires explicit package name at ./Geet1.pl line 5.
Global symbol "@people" requires explicit package name at ./Geet1.pl line 8.
Global symbol "@people" requires explicit package name at ./Geet1.pl line 10.
Global symbol "@people" requires explicit package name at ./Geet1.pl line 14.
Global symbol "@people" requires explicit package name at ./Geet1.pl line 14.
Execution of ./Geet1.pl aborted due to compilation errors.
state这个是在perl 5.0.10里面提供的功能,
需要明确指明,才可以使用,如何指明:
加入这行:
use feature qw(state);
或者加入这行:
use 5.010;
#!/usr/bin/perl
use strict;
use 5.010;
sub greet{
state @people;
my $num;
foreach (@_){
push (@people, $_);
}
$num = @people;
if($num == 1){
print "\n你是第一个来的人!\n";
}else{
print "\n$people[$#people-1]已经比你先到了 \n";
}
}
###开始进行一些测试#########################
&greet("tom");
&greet("Lily");
&greet("wangzi");
你是第一个来的人!
tom已经比你先到了
Lily已经比你先到了
需要明确指明,才可以使用,如何指明:
加入这行:
use feature qw(state);
或者加入这行:
use 5.010;
#!/usr/bin/perl
use strict;
use 5.010;
sub greet{
state @people;
my $num;
foreach (@_){
push (@people, $_);
}
$num = @people;
if($num == 1){
print "\n你是第一个来的人!\n";
}else{
print "\n$people[$#people-1]已经比你先到了 \n";
}
}
###开始进行一些测试#########################
&greet("tom");
&greet("Lily");
&greet("wangzi");
你是第一个来的人!
tom已经比你先到了
Lily已经比你先到了
有一个perl程序,中state的用法错误
perl 中$::的含义及用法
有两个fastaq格式的DNA序列文件,想写一个perl程序完成!
如何运行一个perl程序
求助一个程序(perl程序)
perl中reverse用法问题
perl语言中遇到的情况
perl语言,state好像失效了
如何用perl读入一个文件,计算文件中各个单词的出现频率,再输出
有关lingo的一个错误程序
perl $$含义想知道perl中$$表示的是什么意思if ($keyname /DEVICE_SUPPORT/i){$
谁能帮我注释一小段perl程序,尤其是if语句判断的是什么啊,while () 是自动读一个字符串吗,存在哪里