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

performance – 别名perl中的哈希元素

发布时间:2020-12-16 06:09:23 所属栏目:大数据 来源:网络整理
导读:是否可以在不同的哈希键下访问相同的值?我如何告诉Perl不要复制“非常长的文本?” $hash-{'key'} = 'very long text';$hash-{'alias'} = $hash-{'key'}; 解决方法 简单的方法是使用对公共变量的引用. my $hash;my $val = 'very long text';$hash-{key} =
是否可以在不同的哈希键下访问相同的值?我如何告诉Perl不要复制“非常长的文本?”

$hash->{'key'} = 'very long text';
$hash->{'alias'} = $hash->{'key'};

解决方法

简单的方法是使用对公共变量的引用.

my $hash;
my $val = 'very long text';
$hash->{key} = $val;
$hash->{alias} = $hash->{key};

say ${ $hash->{key} };        # very long text
say ${ $hash->{alias} };      # very long text

${ $hash->{key} } = 'some other very long text';

say ${ $hash->{key} };        # some other very long text
say ${ $hash->{alias} };      # some other very long text

say $hash->{key} == $hash->{alias} ? 1 : 0;  # 1

复杂的方法是使用Data::Alias.

use Data::Alias qw( alias );

my $hash;
$hash->{key} = 'very long text';
alias $hash->{alias} = $hash->{key};

say $hash->{key};        # very long text
say $hash->{alias};      # very long text

$hash->{key} = 'some other very long text';

say $hash->{key};        # some other very long text
say $hash->{alias};      # some other very long text

say $hash->{key} == $hash->{alias} ? 1 : 0;  # 1

(编辑:李大同)

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

    推荐文章
      热点阅读