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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |