Perl 从散列中提取特定元素
如何使用hashref从中提取第二个主题名?主题是散列中的散列中的数组引用Perl 从散列中提取特定元素,perl,hash,Perl,Hash,如何使用hashref从中提取第二个主题名?主题是散列中的散列中的数组引用 my %hash = { 'student1' => { 'Name' => 'aaa', 'Age' => '20', 'Subjects' => ['Maths','Science'] }, 'student2' => { 'Name' => 'bbb', 'Age' =&g
my %hash = {
'student1' => {
'Name' => 'aaa',
'Age' => '20',
'Subjects' => ['Maths','Science']
},
'student2' => {
'Name' => 'bbb',
'Age' => '22',
'Subjects' => ['English','Science']
}
}
my $hashRef = \%hash;
另外,不要使用花括号初始化散列,它们会创建匿名散列。使用圆括号:
$hashRef->{student1}{Subjects}[1]
主题是散列中的散列中的数组引用
my %hash = {
'student1' => {
'Name' => 'aaa',
'Age' => '20',
'Subjects' => ['Maths','Science']
},
'student2' => {
'Name' => 'bbb',
'Age' => '22',
'Subjects' => ['English','Science']
}
}
my $hashRef = \%hash;
另外,不要使用花括号初始化散列,它们会创建匿名散列。使用圆括号:
$hashRef->{student1}{Subjects}[1]
您对
%hash
的声明不正确,请改为执行以下操作:
my %hash = ( ... );
请注意括号而不是大括号
然后要获得第二个主题:
my %hash = (
'student1' => {
'Name' => 'aaa',
'Age' => '20',
'Subjects' => ['Maths','Science']
},
'student2' => {
'Name' => 'bbb',
'Age' => '22',
'Subjects' => ['English','Science']
}
);
您对
%hash
的声明不正确,请改为执行以下操作:
my %hash = ( ... );
请注意括号而不是大括号
然后要获得第二个主题:
my %hash = (
'student1' => {
'Name' => 'aaa',
'Age' => '20',
'Subjects' => ['Maths','Science']
},
'student2' => {
'Name' => 'bbb',
'Age' => '22',
'Subjects' => ['English','Science']
}
);
您的代码是错误的,{}创建了一个hashref,您将它存储在一个hash中。你应该做:
say $hashRef->{student1}{Subjects}[1];
或者更好:
my %hash = (
'student1' => {
'Name' => 'aaa',
'Age' => '20',
'Subjects' => ['Maths','Science']
},
'student2' => {
'Name' => 'bbb',
'Age' => '22',
'Subjects' => ['English','Science']
}
);
my $hashRef = \%hash;
然后,您可以通过以下方式访问:
my $hashref = {
student1 => { ... },
student2 => { ... },
};
您的代码是错误的,{}创建了一个hashref,您将它存储在一个hash中。你应该做:
say $hashRef->{student1}{Subjects}[1];
或者更好:
my %hash = (
'student1' => {
'Name' => 'aaa',
'Age' => '20',
'Subjects' => ['Maths','Science']
},
'student2' => {
'Name' => 'bbb',
'Age' => '22',
'Subjects' => ['English','Science']
}
);
my $hashRef = \%hash;
然后,您可以通过以下方式访问:
my $hashref = {
student1 => { ... },
student2 => { ... },
};
打印这将是“print$hashRef{student 1}{subjects}[1];?@user2742160:不,您不应该删除箭头
->
。此外,哈希键中不允许使用不带引号的空格。打印这将是“print$hashRef{student 1}{subjects}[1]@user2742160:不,您不应该放下箭头->
。此外,哈希键中不允许使用无引号的空格。对于(键%$hashRef){print“$\u”是学生\n;print“\t Name:$$hashRef{$\u}{Name}\n”print“\t第二个主题:$$hashRef{$\u}{Subjects}[1]\n”}对于(键%$hashRef){print“$\u”是学生\n;print“\t Name:$$hashRef{${Name}{Name}{Name}\n”print“\t第二个主题:$$hashRef{${Subjects}[1]\n”;}”