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

Perl:哈希键中的常量值

发布时间:2020-12-16 06:21:31 所属栏目:大数据 来源:网络整理
导读:我有点吃惊.如果我使用常量来表示哈希键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 {$_};} 输
我有点吃惊.如果我使用常量来表示哈希键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

任何方式没有&什么时候使用常量来表示哈希键?

感谢帮助!

解决方法

它在CAVEATS的 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

(编辑:李大同)

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

    推荐文章
      热点阅读