常用的perl 读写文件的操作,我们都很熟悉了,需要先声明1个文件句柄。但是看下面这段代码:

my %organisms = ();

while(<DATA>){
chomp;
if(/^(\S+)\s+(\S+)$/){
my $u=lc($);
my $v=lc($);
$u =~ s/ //g;
$v =~ s/ //g;
$organisms{$u}=$v;
}
} __DATA__
hsa Human
ptr Chimp
na Orangutan
na Rhesus
na Marmoset
mmu Mouse
rno Rat

while 循环中读取的文件句柄,并没有对应一个实际的文件,

这其实是一种用法,在最下方声明了句柄__DATA__, 在句柄下方是每一行的文件内容,

然后通过DATA 这个句柄,就可以读取到这些内容;

这种用法可以当做数据库来用,当字段较少时,我们直接给哈希赋值就可以了;但是当内容很多时,就可以像上述写法一样;

perl _DATA_ 文件句柄的更多相关文章

  1. perl:_DATA_ _LINE_ _FILE_

    这三个应该是句柄: _DATA_ _FILE_ _LINE_ 没有找到具体介绍...记录于此,已被后续补充.

  2. perl文件句柄的传递

    perl 返回文件句柄的2种方式 1.使用 \* #!/usr/bin/perl use strict; sub openfile() { my $path=shift; open(FILE,&quo ...

  3. Perl的IO操作(1):文件句柄

    文件句柄 文件句柄用来对应要操作的文件系统中的文件,这么说不太严谨,但比较容易理解.首先为要打开的文件绑定文件句柄(称为打开文件句柄),然后在后续的操作中都通过文件句柄来操作对应的文件,最后关闭文件句 ...

  4. Perl IO:操作系统层次的IO

    sysopen() open()和sysopen()都打开文件句柄,open()是比较高层次的打开文件句柄,sysopen()相对要底层一点.但它们打开的文件句柄并没有区别,只不过sysopen()有 ...

  5. Perl进程间通信

    不同进程之间的通信或进程间通信(InterProcess Communication, IPC),是一个涉及多个方面的主题.Perl提供了多种进程间通信的方式,本文将逐一介绍.本文的内容主体来自于&l ...

  6. perl 利用管道读取压缩文件内容

    perl的文件句柄不仅支持普通文件, 还支持管道,今天需要统计一个fastq文件中的序列数和碱基数,而NGS的fastq文件一般都是gzip压缩的,所以 需要读取压缩文件中的内容,代码如下: my ( ...

  7. Perl语言编程(大骆驼)

    啰嗦几句 Perl的时代已经过去,现在年轻的同事们基本上都在用Python了.但个人认为单就生物信息文本处理而言,Perl语言是绝对够用的.最主要的是,前辈们搭建的流程大多数是Perl写的,因此,如果 ...

  8. perl-我的第一个程序

    1.问题描述: 总共90位长度的位流数据,其中只有5位的数据为1,其余位全部为0.统计好多组5位的简化数据(每一位之间空格隔开,每一组一行),将其扩展到90位. #!D:/EDA/Perl/bin $ ...

  9. Perl的DATA文件句柄

    有太多次写完一个perl程序,需要另外新建一个文件来测试,每次觉得很繁琐,但又不得不这么做.没想到原来perl已经提供了解决方案,这就是DATA. 使用很简单,见下面这个例子: #!/usr/bin/ ...

随机推荐

  1. 潭州课堂25班:Ph201805201 第七课:控制流程 (课堂笔记)

    # 条件判断 s = '储蓄卡' if s == '男': # 如果if 表达式成立 ,则执行下级语句 print('男性') elif s == '女': # 如果上面表达式不成立,执行本次判断,本 ...

  2. hadoop三种运行模式

    1.单机模式:安装简单,几乎不用做任何配置,但仅限于调试用途 2.伪分布模式:在单节点上同时启动namenode.datanode.jobtracker.tasktracker.secondaryna ...

  3. 应用通信-方案二:Feign

    ------------------客户端controller层--------------------- @RestController public class ClientFeignContro ...

  4. MyEclipse部署WebLogic

    ====================================================================================

  5. Redis集群规范

    Redis集群规范 什么是 Redis 集群 分布式(distributed) 容错(fault-tolerant) 是普通单机 Redis 所能使用的功能的一个子集(subset). 集群的容错功能 ...

  6. Spark机器学习(11):协同过滤算法

    协同过滤(Collaborative Filtering,CF)算法是一种常用的推荐算法,它的思想就是找出相似的用户或产品,向用户推荐相似的物品,或者把物品推荐给相似的用户.怎样评价用户对商品的偏好? ...

  7. Oracle 12c利用数据泵DataPump进行Oracle数据库备份

    1.查看数据库版本 SQL> select version from v$instance; VERSION ----------------- 12.1.0.2.0 2.sysdba用户登录s ...

  8. oracle数据库将一列的值拼接成一行,并且各个值之间用逗号隔开

    使用场景:把某一列值转换为逗号分隔的字符串 例子:比如查询所有的的表空间如下,现在要获得所有的表空间用逗号分隔的字符串(比如rman duplicate的时候skip表空间) SQL> sele ...

  9. rman输出日志的几种方法(转)

    在使用rman的时候经常会碰到以下两种场景,需要把rman的日志输出到文件中: 1.显示的日志太多,导致一个屏幕显示不完,影响了问题的诊断,这时候需要把rman的log输出到文本中,整个的诊断过程就相 ...

  10. ASIHttpRequest请求HTTPS

    一种方法 ASIHTTPRequest *request = [ASIHTTPRequestrequestWithURL:[NSURLURLWithString:bodyString]]; [requ ...