首页 > 解决方案 > 使用 grep 和 map 函数对哈希进行排序

问题描述

鉴于以下结构:

my %names = qw ( hanibal lecter Harry Potter INDIANA JONES Sarah connor scarlet O’Hara JAMES Bond );

编写一个程序,根据这个列表构建一个名称数组。结果数组应包含原始大写的全名(名字+姓氏),并应按姓氏/名字排序。排序时,必须忽略大小写。出于未知的原因,我们不希望列表中出现名为“Jones”或“Connor”的人,因此应将其过滤掉。

这是我的要求,我需要使用 grep、map 和 sort 函数来解决这个问题。

标签: arraysperlhashgrep

解决方案


哈希中的键和值都是名称。因此,从哈希“构建名称数组”的最简单方法是:

my @names = %names;

但这不使用mapor grep。所以我们可以(毫无意义地)添加它们。

my @names = grep { 1 } map { $_ } %names;

我认为,也许,你应该更详细地解释你想要什么。


推荐阅读