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

Perl有什么更好的:哈希引用数组或“平”哈希列表?

发布时间:2020-12-15 23:28:12 所属栏目:大数据 来源:网络整理
导读:我无法确定哪种方法更多(1)惯用Perl,(2)有效,或(3)“清除”. 让我用代码解释一下.首先,我能做到 sub something { ... $ref-{size} = 10; $ref-{name} = "Foo"; $ref-{volume} = 100; push (@references,$ref); ... return @references;} 或者,我能做到 sub s
我无法确定哪种方法更多(1)惯用Perl,(2)有效,或(3)“清除”.

让我用代码解释一下.首先,我能做到

sub something {
  ...
  $ref->{size}   = 10;
  $ref->{name}   = "Foo";
  $ref->{volume} = 100;
  push (@references,$ref);
  ...
  return @references;
}

或者,我能做到

sub something {
  ...
  push (@names,"Foo");
  $sizes{Foo}   =  10;
  $volumes{Foo} = 100;
  ...
  return (@names,%sizes,%volumes);
}

两者基本上都是一样的.重要的是,我需要数组,因为我需要保持秩序.

我知道,总有不止一种方法可以做某事,但是,你更喜欢这两种中的哪一种?

解决方法

而不是用无意义的术语来思考,比如用具体的术语来思考和表达这个问题.在这种情况下,您似乎返回了具有名称,大小和卷属性的对象列表.当你这样想时,没有理由考虑第二种方法.

如果遇到问题,你可以考虑稍后进行优化,但即使你这样做,你可能会从Memoize获得更多,而不是爆炸数据结构.

我建议的一个效率改进是从这个子程序返回一个引用:

sub get_objects {
    my @ret;

    while ( 'some condition' ) {
        #  should I return this one?
        push @ret,{
            name => 'Foo',size => 10,volume => 100,};
    }

    return @ret;
}

(编辑:李大同)

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

    推荐文章
      热点阅读