fyqt.net
当前位置:首页 >> pErl kEys %hAsh >>

pErl kEys %hAsh

事实上你这样做是没有意义的。如果存在该键,你就不是添加新的,只能改变原键值。所以只需要判断该键是否存在。 你如果有这种需求,大概是需要用二级哈希 (!exists($a{$key1}->{$key2})) and ($a{$key1}->{$key2} = $value);

哈希可能不会按照文件里的顺序存储在内存中,因为它存储的规则是怎么舒服怎么存 当执行 %hash = ("a" => 10, "b" => 50, "c" => 30); foreach (keys %hash) { print $_ . " => " . $hash{$_} . "\n"; } 看到的输出结果很可能不是当初赋值时的顺...

呃,没大明白,增加键值对,意思是这样么: my %hash = (1,2,3,4); #初始化 my $key = 'a'; my $value = 'b'; $hash{$key} = $value; #说的是这个? 对哈希的values进行排序, my @sort_values = sort(values %hash);

my %hash; my @keys=sort { $hash{$a} $hash{$b} } keys %hash; 这样就可以了,直接循环用下面的。 foreach my $key ( sort { $hash{$a} $hash{$b} } keys %hash) { }

你所定义的%hash是一个值为哈希引用的哈希。 %hash的key为1,而值为{1 => 0, 2 => 0, 3 => 0}。这个花括号很重要,它表示这是一个匿名哈希,所以$hash{1}的值其实就是{1 => 0, 2 => 0, 3 => 0},对于哈希引用来说,%{}是用来解引用的,也就是得...

按哈希键的数值大小排序: my @key =sort {$a $b} keys %hash; @key里头存的是按哈希键的数值大小排序后的键。 按哈希值的数值大小排序: my @key =sort {$hash{$a} $hash{$b}} keys %hash; @key里头存的是按哈希值的数值大小排序后的键

sub test { my %hash = @_; print "$_ => $hash{$_}$/" foreach keys %hash;}my %h = ( A => 100, B => 200, C => 300 );test(%h);

只需要申明标量环境就可以了,据个例子如下 #!/usr/bin/perl -w use strict; use warnings; my %hash=map {$_=>$_+1} (1..6); print scalar keys %hash; --------------------------- 输出结果 6

哈哈! 良久没见过这麼有水准的问题了. 先加一句 $Data::Dumper::Sortkeys = 1 ; 再print Dumper 时就会排序了!

my %m = ('a', 'b', 'c', 'd');my %n = ('a', 'b', 'c', 'd');my %h = ('a', 'b', 'e', 'd');my %k = ('a', 'b', 'e', 'd');print same(\%m, \%n), "\n";print same(\%h, \%k), "\n";print same(\%m, \%k), "\n";sub same{my ($m, $n) = @_;retu...

网站首页 | 网站地图
All rights reserved Powered by www.fyqt.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com