arrays - 通过在 Perl 中通过数组的哈希映射第一个索引来获取第二个索引的值
问题描述
我有一个 Perl 文件代码 state.pl,我试图在其中根据数组哈希中的状态代码检索状态的全名。以下是代码:
my $all_state_details = {
IN => [
[
"AP",
"Andhra Pradesh"
],
[
"AN",
"Andaman and Nicobar Islands"
],
[
"AR",
"Arunachal Pradesh"
],
],
US => [
[
"AL",
"Alabama"
],
[
"AK",
"Alaska"
],
[
"AS",
"American Samoa"
],
],
};
my $state = 'AN';
my $country = 'IN';
my @states = $all_state_details->{$country};
my @state_name = grep { $_->[0] eq $state } @states;
print @state_name;
当我运行脚本时,我得到空白输出
我想要的输出只是:
Andaman and Nicobar Islands
解决方案
@{ ... }
取消引用操作对于将数组引用转换$all_state_details->{$country}
为适合与 一起使用的数组是必要的grep
。
print map { $_->[1] }
grep { $_->[0] eq $state } @{$all_state_details->{$country}};
推荐阅读
- javascript - NodeJS 服务器外部访问
- flutter - Flutter 图像生成器回调问题
- reactjs - AuthError - 错误:未正确配置 Amplify
- python - Django Plotly Dash
- javascript - 将二维数组中的不同值推送到唯一数组
- sql-server - 无法删除非对称密钥,因为有一个登录映射到它
- java - 有没有办法使用带有继承的记录?
- vue.js - Vue 中的笑话测试
- python - Spyder 的代码分析无法识别 tkinter 导入。有没有办法在不改变 * 到每个项目的情况下改变它?
- vba - 根据 Primarykey ID 查找数据位置