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

pErl kEys %hAsh

实在是看不太懂你的需求,想判断一个字符是否同时在哈希的键和对应键的值里面。 如果是的话,个人觉得类似的代码是: #!perluse strict;use warnings;my %hash = ( # xxxx);my $file_name = 'xxxx';open my $fh, '

需要遍历哈希: $str = 'abc';%h = ('abc'=>123, 'def'=>456,);for $k (keys(%h)) { if($k eq $str) { $v = $h{$k}; printf("$k => $v.\n"); }}

哈希可能不会按照文件里的顺序存储在内存中,因为它存储的规则是怎么舒服怎么存 当执行 %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);

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

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

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

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

#!/usr/bin/perl# 脚本名称 data_to_hash.pl# 将两列数据存入文件data.txt中,执行时跟脚本放在同一个目录use strict;# 定义哈希my %hash_data;# 打开文件open(FL,"data.txt");#读文件while(){ chomp(); # 空格拆分数据为两列 my ($dkey,$dval) ...

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

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