小白学Perl之初始哈希
操作:
1.my %hash; //声明哈希
$hash{'A'}="1"
A是key,1 是value,与数组一样,hash作为整体时,%hash 带%,而作为单个元素使用要使用$。
my%food=('fruit',"apple",'drink',"Coco")
类似数组初始化 注意这里使用的是( )不是{} {},用了它实际就是创建了一个引用。
my%fruit=(apple=>"fruit",banana=>'fruit');
“=>”是perl运算符,用于hash。
应用举例:
我们通过一个实例来展示hash的实际应用,本例使用哈希实现两个文本文件的合并,输入文件为A、B,输出文件为OUT.txt,并对哈希排序后输出。
open(FD1,"A")||die("Can not open thefile!$!n");
open(FD2,"B")||die("Can not open thefile!$!n");
%hs = ();
%hss = ();
while(<FD1>){
@arr1 = split /\t/;
foreach $p (@arr1){chomp($p);$p=~s/\t//;$hs{$arr1[3]}= $hs{$arr1[3]}.$p."\t";}
foreach $p (@arr1){chomp($p);$p=~s/\t//;$hss{$arr1[3]}= $hss{$arr1[3]}.$p."\t";}
}
close FD1;
open(OUT,">OUT.txt")||die("Can notopen the file!$!n");
while(<FD2>){
@row_of_FD2 = split /\ /;
if(exists $hs{$row_of_FD2[0]}){
chomp($row_of_FD2[1]);
$hs{$row_of_FD2[0]} =$hs{$row_of_FD2[0]}.$row_of_FD2[1];
}
}
foreach $key (sort {$a cmp $b} keys %hs){
if($hss{$key} eq $hs{$key}){
$hs{$key} = $hs{$key}."NA";
print OUT $hs{$key},"\n";
}
else{
print OUT $hs{$key},"\n";
往期「精彩内容」,点击回顾
DNA测序历史 | CircRNA数据库 | Epigenie表观综合 | 癌症定位
BWA介绍 | 源码安装R包 | CancerLocator | lme4 | 450K分析
乳腺癌异质性 | BS-Seq | 隐马模型 | Circos安装 | Circos画图
KEGG标记基因 | GDSC | Meta分析 | R线性回归和相关矩阵
精彩会议及课程,点击回顾
计算表观遗传学大数据前沿学术论坛会议记实
哈尔滨医科大学2017年全国生物信息学暑期学校
2017龙星课程系列(一)
2017龙星课程系列(二)
2017龙星课程系列(三)
2017龙星课程系列(四)
2017龙星课程系列(五)
更多相关文章
- 建立表观遗传修饰和转录因子结合位点的关系模型
- python起步学习(三)
- 隐马尔科夫模型-前向算法
- 介绍几种常见的作图软件
- 函数节流你应该知道的那点事
- 机器学习中向量化编程总结记录
- R语言生存分析入门
- R语言通过parallel包实现多线程运行
- 隐马尔科夫模型-基本模型与三个基本问题