操作:

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龙星课程系列(五)


©著作权归作者所有:来自51CTO博客作者mob604756f4ef89的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 建立表观遗传修饰和转录因子结合位点的关系模型
  2. python起步学习(三)
  3. 隐马尔科夫模型-前向算法
  4. 介绍几种常见的作图软件
  5. 函数节流你应该知道的那点事
  6. 机器学习中向量化编程总结记录
  7. R语言生存分析入门
  8. R语言通过parallel包实现多线程运行
  9. 隐马尔科夫模型-基本模型与三个基本问题

随机推荐

  1. 如何一个android工程作为另外一个android
  2. Android Studio常用快捷键、Android Stud
  3. 多款Android播放器源码集锦(附开发教程)
  4. 对android夜间模式实现的探讨
  5. Android创建和使用数据库详细指南
  6. 创建一个ArcGIS for Android 新项目并显
  7. android:stretchColumns=”0″
  8. Android高手进阶教程(二)之----Android(
  9. 推翻自己和过往,重学自定义View
  10. Android中的一些样式设置