Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 从散列中提取特定元素_Perl_Hash - Fatal编程技术网

Perl 从散列中提取特定元素

Perl 从散列中提取特定元素,perl,hash,Perl,Hash,如何使用hashref从中提取第二个主题名?主题是散列中的散列中的数组引用 my %hash = { 'student1' => { 'Name' => 'aaa', 'Age' => '20', 'Subjects' => ['Maths','Science'] }, 'student2' => { 'Name' => 'bbb', 'Age' =&g

如何使用hashref从中提取第二个主题名?

主题是散列中的散列中的数组引用

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”;}”