【发布时间】:2011-06-19 01:58:04
【问题描述】:
我有一个关于 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};
}
编辑
Case Closed..阅读我的回答帖子
【问题讨论】:
-
您能告诉我们您看到的确切错误吗?
-
"substr 在第 xx 行的字符串之外".. 其中 xx 包含 "$object[$_[0]]->min(substr($intime, 2,2)); "
-
如果在每个 substr 后面加上
.''会得到什么? -
不知何故,无论我如何重新排列行,它都只会抱怨第二行
-
@Eric 有效!但你能解释一下为什么吗?
标签: arrays perl substring substr