perl編程 在Perl中,哈希的標(biāo)量上下文是什么?有什么用處嗎?
在Perl中,哈希的標(biāo)量上下文是什么?有什么用處嗎?你可能會(huì)看再一些像4/8的值,而簡(jiǎn)單來說這甚麼都不是.. hash其實(shí)是一些組織化了的array,里面用內(nèi)建的index(索引)來處理,那個(gè)鍵對(duì)應(yīng)
在Perl中,哈希的標(biāo)量上下文是什么?有什么用處嗎?
你可能會(huì)看再一些像4/8的值,而簡(jiǎn)單來說這甚麼都不是.. hash其實(shí)是一些組織化了的array,里面用內(nèi)建的index(索引)來處理,那個(gè)鍵對(duì)應(yīng)那個(gè)值(在內(nèi)存的位置)簡(jiǎn)單地理解的話,這輸出的分母是準(zhǔn)備用來儲(chǔ)存這個(gè)index的總量--叫bucket(桶),而分子就是使用了這個(gè)index的量 以上你唯一會(huì)有意思的地方是,如果這是一個(gè)空的hash,$a就會(huì)是0
Perl哈希怎樣實(shí)現(xiàn)輸出的順序還是按照文件里的順序?
哈希可能不會(huì)按照文件里的順序存儲(chǔ)在內(nèi)存中,因?yàn)樗鎯?chǔ)的規(guī)則是怎么舒服怎么存當(dāng)執(zhí)行%hash = ("a" => 10, "b" => 50, "c" => 30)foreach (keys %hash){ print $_ . " => " . $hash{$_} . "n"}看到的輸出結(jié)果很可能不是當(dāng)初賦值時(shí)的順序??梢允褂?sort給鍵值排序foreach (sort keys %hash){ print $_ . " => " . $hash{$_} . "n"}此時(shí)看到的結(jié)果會(huì)根據(jù)字母順序進(jìn)行排序。還可以使用@key = sort{$hash{$a} $hash{$b}}keys %hash這樣就是根據(jù)哈希鍵對(duì)應(yīng)的值進(jìn)行排序,此時(shí)是按數(shù)字大小進(jìn)行升序排序。將$a和$b的位置調(diào)換就是降序,如@key = sort{$hash{$b} $hash{$a}}keys %hashforeach (@key){ print $_ . " => " . $hash{$_} . "n"}結(jié)果是根據(jù)鍵值進(jìn)行排序。
perl中如何將按hash的排序方法?
如果是按ASCII碼排序,則代碼如下:foreachmy$key(sort{$hash{$a}cmp$hash{$b}}keys%hash){my$value=$hash{$key}#dosomethingwith($key,$value)}如果是按數(shù)字小到大排列,則代碼如下:foreachmy$key(sort{$hash{$a}<=>$hash{$b}}keys%hash){my$value=$hash{$key}#dosomethingwith($key,$value)}如果是按數(shù)字大到小排列,則代碼如下:foreachmy$key(sort{$hash{$b}<=>$hash{$a}}keys%hash){my$value=$hash{$key}#dosomethingwith($key,$value)}按KEY排列foreachmy$item(sort{$a<=>$b}keys%hash){print"$item ==>$hash{$item}","/n"}