以前は気にしていなかった perl について質問がありますが、今は悩まされています。
テキストログから値を取得して入力を解析するメソッド呼び出し saveItems があります。
そのため、メソッドにはこの数行があります。
$intime = $_[1];
$timeHr = substr($intime, 0,2);
$timeMin = substr($intime, 2,2);
$timeSec = substr($intime, 5,2);
$object[$_[0]]->hr($timeHr);
$object[$_[0]]->min($timeMin);
$object[$_[0]]->sec($timeSec);
$intime は、このメソッドに渡される時間の値です。$intime のサンプル: 0431:12
私の質問は、なぜ上記でエラーが発生しないのですが、次のように行を短くしようとすると、次のようになります。
$object[$_[0]]->hr(substr($intime, 0,2));
$object[$_[0]]->min(substr($intime, 2,2));
$object[$_[0]]->sec(substr($intime, 5,2));
最初のものだけが機能しますが、残りは文字列外エラーになります。
ご覧のとおり、私は比較的 perl に慣れていませんが、誰か答えてもらえますか?
編集
サンプル人事:
sub hr {
my $self = shift;
if (@_) { $self->{HR} = shift }
return $self->{HR};
}
編集
ケースクローズ..私の回答投稿を読んでください