我想執行這個簡單的代碼,但它已經給我了以下錯誤:在permutation.pl線串使用未初始化值
使用未初始化值$字符串的11
#!usr/bin/perl
use strict ;
use warnings ;
sub message {
my ($string) = @_ ;
print "$string" ;
}
message() ;
我想執行這個簡單的代碼,但它已經給我了以下錯誤:在permutation.pl線串使用未初始化值
使用未初始化值$字符串的11
#!usr/bin/perl
use strict ;
use warnings ;
sub message {
my ($string) = @_ ;
print "$string" ;
}
message() ;
您沒有將任何參數傳遞給message
,因此其@_
爲空,因此您將undef
指定爲$string
,這會導致$string
被字符串化時的警告。
修復:
message("Hello, world\n");
確保您傳遞非undef
值的函數(傳遞任何參數都還屬於這一類),或做出輸入參數的默認值。 //=
檢查變量是否爲undef
,如果是,則爲其設置正確的值(一個空字符串)。
#!usr/bin/perl
use strict;
use warnings;
sub message {
my ($string) = @_ ;
$string //= "";
print "$string" ;
}
message() ;
如果你解釋了// =做了什麼會有幫助。 – squiguy
您不會將任何參數傳遞給'message'。 – squiguy