這是用於獲取單詞的過去分詞的子例程。動詞傳入,分裂成字符,然後根據最終的信件,結束選擇:我可以幫助調試此代碼嗎?
##Past Participle
sub getPPForBase(){ ##$verb passed in
my $verb = shift;
my @verbChars = split(//,$verb); ##Split into characters
my $verbLen = @verbChars; ##Length of @verbchars, as a number
###PROBLEM HERE:: trying to say last letter is e, second last is i
if(($verbChars[$verbLen -1] eq "e") && ($verbChars[$verLen -2] eq "i")){
return substr($verb,0,$verbLen-2)."ying";
}
if($verbChars[$verbLen -1] eq "e"){
return substr($verb,0,$verbLen-1)."ing";
}
return $verb."ing";
}
錯誤:
[Thu Jun 23 13:47:51 2011] [error] [client ::1] Use of uninitialized value $verLen in subtraction (-) at /Users/jon/Desktop/stanford-postagger-full-2011-04-20/verbTenseChanger.pl line 59.
有人可以幫我找出這意味着什麼,以及如何解決它? (代碼運行良好,但恐怕存在隱藏的問題)。
讓我知道你是否需要更多信息。
非常感謝。
我認爲你需要把它改成'$ verbLen -2'這裏'$ verbChars [$ verLen -2] eq「i」' –