花括号在访问对象时有什么区别
What difference does curly brace make in accessing an object
甚至不确定我是否使用了正确的术语..
这是传递的数据。
$bug = bless({
'bug_id' => '25252',
'flag_types' => [
bless({
'name' => 'name1',
'flags' => [bless({
'id' => 488052,
}, 'Bugzilla::Flag')],
}, 'Bugzilla::FlagType'),
bless({
'name' => 'name2',
'flags' => [bless({
'id' => 488053,
}, 'Bugzilla::Flag')],
}, 'Bugzilla::FlagType'),
],
}, 'Bugzilla::Bug');
为什么我可以引用带或不带花括号的 name
,但不能引用 flags
?
$_->flags
给出错误
Can't locate object method "flags"
my @isCrash = map {
print Dumper($_->name);
print Dumper($_->{name});
print Dumper($_->flags); # errors
print Dumper($_->{flags};
} @{ $bug->{flag_types} };
我知道 flags
不是方法,但为什么我没有收到 name
的错误?
您的数组包含 Bugzilla::FlagType 类型的对象,它们有一个方法 name
表示“Returns 标志类型的名称”。
甚至不确定我是否使用了正确的术语.. 这是传递的数据。
$bug = bless({
'bug_id' => '25252',
'flag_types' => [
bless({
'name' => 'name1',
'flags' => [bless({
'id' => 488052,
}, 'Bugzilla::Flag')],
}, 'Bugzilla::FlagType'),
bless({
'name' => 'name2',
'flags' => [bless({
'id' => 488053,
}, 'Bugzilla::Flag')],
}, 'Bugzilla::FlagType'),
],
}, 'Bugzilla::Bug');
为什么我可以引用带或不带花括号的 name
,但不能引用 flags
?
$_->flags
给出错误
Can't locate object method "flags"
my @isCrash = map {
print Dumper($_->name);
print Dumper($_->{name});
print Dumper($_->flags); # errors
print Dumper($_->{flags};
} @{ $bug->{flag_types} };
我知道 flags
不是方法,但为什么我没有收到 name
的错误?
您的数组包含 Bugzilla::FlagType 类型的对象,它们有一个方法 name
表示“Returns 标志类型的名称”。