加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl数组和使用map的哈希操作

发布时间:2020-12-16 06:07:34 所属栏目:大数据 来源:网络整理
导读:我有以下测试代码 use Data::Dumper;my $hash = { foo = 'bar',os = 'linux' };my @keys = qw (foo os);my $extra = 'test';my @final_array = (map {$hash-{$_}} @keys,$extra);print Dumper @final_array; 输出是 $VAR1 = [ 'bar','linux',undef ]; 难道
我有以下测试代码

use Data::Dumper;

my $hash = {
            foo => 'bar',os  => 'linux'
           };

my @keys = qw (foo os);

my $extra = 'test';

my @final_array = (map {$hash->{$_}} @keys,$extra);

print Dumper @final_array;

输出是

$VAR1 = [
          'bar','linux',undef
        ];

难道元素不应该是“bar,linux,test”吗?为什么最后一个元素未定义,如何将元素插入@final_array?我知道我可以使用push函数但是有没有办法将它插入到与使用map命令相同的行上?

基本上,操作数组意味着在实际脚本中的SQL命令中使用,我想避免在此之前使用额外的变量,而是执行以下操作:

$sql->execute(map {$hash->{$_}} @keys,$extra);

解决方法

$extra正在通过地图传递,因为在密钥测试的散列中没有条目,值为undef.在地图周围放置括号以强制解析:

$sql->execute((map {$hash->{$_}} @keys),$extra);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读