gpt4 book ai didi

perl - 为什么我会在 Perl 中返回散列或散列引用?

转载 作者:行者123 更新时间:2023-12-04 02:30:59 24 4
gpt4 key购买 nike

完成以下任务的最有效方法是什么? (我知道他们完成了同样的事情,但大多数人会如何在三者之间做到这一点,为什么?)

文件 a.pl

my %hash = build_hash();
# Do stuff with hash using $hash{$key}
sub build_hash
{
# Build some hash
my %hash = ();
my @k = qw(hi bi no th xc ul 8e r);
for ( @k )
{
$hash{$k} = 1;
}

# Does this return a copy of the hash??
return %hash;
}

文件 b.pl
my $hashref = build_hash();
# Do stuff with hash using $hashref->{$key}
sub build_hash
{
# Build some hash
my %hash = ();
my @k = qw(hi bi no th xc ul 8e r);
for ( @k )
{
$hash{$k} = 1;
}

# Just return a reference (smaller than making a copy?)
return \%hash;
}

文件c.pl
my %hash = %{build_hash()};
# Do stuff with hash using $hash{$key}
# It is better, because now we don't have to dereference our hashref each time using ->?

sub build_hash
{
# Build some hash
my %hash = ();
my @k = qw(hi bi no th xc ul 8e r);
for ( @k )
{
$hash{$k} = 1;
}

return \%hash;
}

最佳答案

我更喜欢返回哈希引用有两个原因。一,它使用更少的内存,因为没有副本。第二,如果您只需要一份散列,它可以让您执行此操作。

my $value = build_hash()->{$key};

学会喜欢散列引用,一旦你开始使用对象,你就会经常看到它们。

关于perl - 为什么我会在 Perl 中返回散列或散列引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2009831/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com