【发布时间】:2012-07-01 17:14:51
【问题描述】:
#! /usr/bin/perl
# this is the object tester
{package Hate;
sub status {
my $class = shift;
print "-- $_[0] $_[1] $_[2]\n";
print "$class exists and ", $class->stats($_[0]), "and ", $class->type($_[1]), "and ", $class->location($_[2]);
}
}
{package Grudge;
@ISA = "Hate";
sub stats{"$_[0]\n"}
sub type{"$_[0]\n"}
sub location{"$_[0]\n"}
}
Hate::status("Grudge", @ARGV);
我跑了./program 一二三
这个输出是我所期望的 怨恨存在且一 和两个 和三个
这就是我得到的 怨恨存在和怨恨 和怨恨 和怨恨
但是当我使用这个脚本时
#! /usr/bin/perl
# this is the object tester
{package Hate;
sub status {
my $class = shift;
print "-- $_[0] $_[1] $_[2]\n";
print "$class exists and ", $class->stats($_[0]), "and ", $class->type($_[1]), "and ", $class->location($_[2]);
}
}
{package Grudge;
@ISA = "Hate";
sub stats{"$_[1]\n"}
sub type{"$_[1]\n"}
sub location{"$_[1]\n"}
}
Hate::status("Grudge", @ARGV);
这行得通。
【问题讨论】:
-
您是否讨厌或怨恨句子中缩进代码和大写?
-
我真的不是想听起来很冷嘲热讽,但你为什么指望
one two three?也许如果您解释为什么这是您的期望,我们可能会理解脱节是什么。@ARGV中还有什么内容?
标签: perl oop inheritance object