Это подпрограмма, которая используется для получения причастия в прошлом слова.Глагол передается, разбивается на символы, а затем, в зависимости от последних букв, выбирается окончание:
##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.
Может кто-нибудь помочь мне разобратьсячто это значит и как это исправить?(Код работает нормально, но я боюсь, что есть скрытая проблема).
Дайте мне знать, если вам нужна дополнительная информация.
Большое спасибо.