我正在尝试执行这个简单的代码,但它已经给我以下错误:
在permutation.pl第11行的字符串中使用未初始化的值$ string。
#!usr/bin/perl
use strict ;
use warnings ;
sub message {
my ($string) = @_ ;
print "$string" ;
}
message() ;
答案 0 :(得分:5)
您没有将任何参数传递给message
,因此其@_
为空,因此您将undef
分配给$string
,这会在{$string
时发出警告1}}是字符串化的。
修正:
message("Hello, world\n");
答案 1 :(得分:4)
确保将非undef
值传递给函数(根本不传递参数也属于此类别),或者为输入参数设置默认值。 //=
检查变量是否为undef
,如果是,则为其设置正确的值(空字符串)。
#!usr/bin/perl
use strict;
use warnings;
sub message {
my ($string) = @_ ;
$string //= "";
print "$string" ;
}
message() ;