"b"; my %-6ren">
gpt4 book ai didi

Perl:哈希键中的常量值

转载 作者:行者123 更新时间:2023-12-05 00:49:13 25 4
gpt4 key购买 nike

我有点吃惊。如果我对哈希键使用常量,Perl 不使用该值。我需要在它前面加上 & 才能实现这一点。

use constant A => "a";
use constant B => "b";

my %h = (A => "1", &B => "2");

print "\n". A . ", " . B;
foreach (sort (keys (%h)))
{
print "\n" . $_ . "=" . $h {$_};
}

输出:
a, b
A=1
b=2

但我希望(第二行不同)。
a, b
a=1
b=2

当使用常量作为哈希键时,没有 & 有什么方法可以做到吗?

感谢帮助!

最佳答案

它记录在 constant 中在警告下。

常见的方式是使用() :

my %h = (A => "1", B() => "2");

或切换到“非字符串化胖逗号”(或简单的逗号):
my %h = (A => "1", B ,=> "2");

使用 &不内联常量,您可以使用 B::Deparse 进行验证:
$ perl -MO=Deparse ~/1.pl
sub B () { 'b' }
use constant ('A', 'a');
use constant ('B', 'b');
my(%h) = ('A', '1', &B, '2');
print "\na, b";
foreach $_ (sort keys %h) {
print "\n" . $_ . '=' . $h{$_};
}
/home/choroba/1.pl syntax OK

关于Perl:哈希键中的常量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48076743/

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