亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: hash一段代碼沒看懂,高手解釋下 [打印本頁]

作者: cocoa1227    時間: 2012-05-18 09:53
標(biāo)題: hash一段代碼沒看懂,高手解釋下
#!/usr/bin/perl -w
use strict;
my %hash;

open my $fd,"aa.txt" or die $!;
while(<$fd>) {
$hash{$_} ++;  # 這句話怎么理解?
}
close $fd;
open $fd,"bb.txt" or die $!;
while(<$fd>) {
    print if $hash{$_}  ;
}
close $fd;

作者: zhlong8    時間: 2012-05-18 10:06
和 $i++ 沒什么區(qū)別啊,就是 $hash{$_} += 1; $hash{$_} = $hash{$_} + 1;

這里是把 aa.txt 的內(nèi)容按行讀入內(nèi)存當(dāng)個字典,然后檢測 bb.txt 里面的內(nèi)容是不是在 aa.txt 里面
作者: cocoa1227    時間: 2012-05-18 10:16
回復(fù) 2# zhlong8


    那鍵對應(yīng)的值是不是沒有內(nèi)容?
作者: zhlong8    時間: 2012-05-18 10:25
cocoa1227 發(fā)表于 2012-05-18 10:16
回復(fù) 2# zhlong8


有啊,是出現(xiàn)次數(shù)的計算,不是有個 ++ 嗎?Perl 語言有個好處就是第一次出現(xiàn)的時候你不需要初始化下 $hash{$_} = 1;

直接 ++ 它就知道你想要的是個數(shù)字,如果不存在會自動給你創(chuàng)建個數(shù)字。
作者: zhlong8    時間: 2012-05-18 10:29
cocoa1227 發(fā)表于 2012-05-18 10:16
回復(fù) 2# zhlong8


再比如2維數(shù)組,你直接聲明個 my @lol; 不需要初始化就可以直接 $lol[$x][$y] = "something"; 它會自動會你創(chuàng)建個新的數(shù)組,再把它的引用賦值給 $lol[$x]。這個特性叫 autovivification 不知道中文怎么譯
作者: scutdk    時間: 2012-05-18 10:43
$hash{$_}就是key=>value中的value啊,key是$_,也就是你讀進(jìn)來的每一行。
整個程序的作用就相當(dāng)于對aa中的每一行執(zhí)行g(shù)rep $_ bb.txt, $_為aa中的每一行。
作者: cocoa1227    時間: 2012-05-18 11:02
我打日志跟蹤了下,
#!/usr/bin/perl -w
use strict;
my %hash;

open my $fd,"a" or die $!;
while(<$fd>) {
        print "file a",chomp($_),"\t";
        $hash{$_} ++;  # 這句話怎么理解?
        print "keys " ,sort(keys %hash),"\t";
        print "values " ,sort(values %hash),"\n";
}
close $fd;
=cut;
open $fd,"b" or die $!;
while(<$fd>) {
    print if $hash{$_}  ;
}
close $fd;
=cut


f:>more a
a
b
c

f:>perl b.pl
file a 1    keys a values 1
file a 1    keys b values 11
file a 1    keys c values 111

問題:values 怎么不是 1 2 3??有點(diǎn)想不通
作者: cocoa1227    時間: 2012-05-18 11:04
突然明白了,不好意思,有點(diǎn)腦筋沒轉(zhuǎn)過彎來
作者: tempo8    時間: 2012-05-18 20:11
各位大仙兒:
類似的問題在
http://www.72891.cn/forum.p ... ;extra=#pid22110313
9、10樓!:wink:
請支招!謝謝





歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2