1
我從來沒有在perl中實際使用過子程序的屬性,但它碰巧發現了它們的用法,所以我一直在試圖理解如何使用它們。特別是,我需要能夠在運行時發現子例程的屬性。我有下面的測試代碼,但它只能輸出一個空列表:attributes :: get()返回空列表?
use attributes;
sub MODIFY_CODE_ATTRIBUTES {
my ($class,$code,@attrs) = @_;
my $allowed = 'takeshash';
my @bad = grep { $_ ne $allowed } @attrs;
return @bad;
}
sub mylog : takeshash {
my $params = shift;
my $val = log($params->{'n'})/log($params->{'base'});
return $val;
}
use Data::Dumper;
print Dumper [attributes::get(\&mylog)];
運行的perl v5.12.4,我得到:
$ perl temp.pl
$VAR1 = [];
謝謝,我能夠通過RTFM算出這個自己,但出於某種原因在堆棧溢出不能得到張貼我的解決方案。 – 2012-01-31 14:50:15