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

常用的perl 读写文件的操作,我们都很熟悉了,需要先声明1个文件句柄.但是看下面这段代码: my %organisms = (); while(<DATA>){ chomp; if(/^(\S+)\s+(\S+)$/){ ); ); $u =~ s/ //g; $v =~ s/ //g; $organisms{$u}=$v; } } __DATA__ hsa Human ptr Chimp na Orangutan na Rhesus na Marmoset mmu Mouse rno Ra…
这三个应该是句柄: _DATA_ _FILE_ _LINE_ 没有找到具体介绍...记录于此,已被后续补充.…
perl 返回文件句柄的2种方式 1.使用 \* #!/usr/bin/perl use strict; sub openfile() { my $path=shift; open(FILE,"$path") or die "Can't open $path $!\n "; return \*FILE; } my $temp=&openfile("config"); my @file=<$temp>; print @file;…
文件句柄 文件句柄用来对应要操作的文件系统中的文件,这么说不太严谨,但比较容易理解.首先为要打开的文件绑定文件句柄(称为打开文件句柄),然后在后续的操作中都通过文件句柄来操作对应的文件,最后关闭文件句柄. 如不理解文件句柄的概念,可将文件句柄看作Linux中文件描述符的概念(当然,它们是不同的,Perl的文件句柄在层次上对应于Linux中的标准IO流).例如特殊的STDIN.STDOUT.STDERR就是perl中预定义好的文件句柄,分别表示标准输入.标准输出.标准错误,要将它们对应到Linux…
sysopen() open()和sysopen()都打开文件句柄,open()是比较高层次的打开文件句柄,sysopen()相对要底层一点.但它们打开的文件句柄并没有区别,只不过sysopen()有一些自己的特性:可以使用几个open()没有的flag,可以指定文件被创建时的权限等. 一定要注意的是,io buffer和open().sysopen()无关,而是和读.写的方式有关,例如read().getc()以及行读取都使用io buffer,而sysread.syswrite则直接绕过io…
不同进程之间的通信或进程间通信(InterProcess Communication, IPC),是一个涉及多个方面的主题.Perl提供了多种进程间通信的方式,本文将逐一介绍.本文的内容主体来自于<Pro Perl>的第21章. 单向管道(unidirectional pipe) 管道是两个文件描述符(文件句柄)通过一根管道连接起来,一端的文件句柄读,另一端的文件句柄写,从而实现进程间的通信. Perl使用pipe函数可以创建单向管道,也就是一端只可读.一端只可写的管道,所以它需要两个文件句柄…
perl的文件句柄不仅支持普通文件, 还支持管道,今天需要统计一个fastq文件中的序列数和碱基数,而NGS的fastq文件一般都是gzip压缩的,所以 需要读取压缩文件中的内容,代码如下: my ($fastq) = @ARGV: my ($reads, $bases) = cal_sequence_info($fastq); print qq{$reads\t$bases\n}; sub cal_sequence_info { my $fastq = shift; my $file_hand…
啰嗦几句 Perl的时代已经过去,现在年轻的同事们基本上都在用Python了.但个人认为单就生物信息文本处理而言,Perl语言是绝对够用的.最主要的是,前辈们搭建的流程大多数是Perl写的,因此,如果从事流程维护和升级的工作,掌握Perl是必不可少的.即使领导也提出过全面改用Python,这么多流程,这么多脚本,谈何容易!当然,Python也是必学的,因为流程中也嵌套了不少python脚本,现在大部分流程的主程基本是Python来控制了. 总之,若要在流程搭建和维护升级的工作中游刃有余,Shel…
1.问题描述: 总共90位长度的位流数据,其中只有5位的数据为1,其余位全部为0.统计好多组5位的简化数据(每一位之间空格隔开,每一组一行),将其扩展到90位. #!D:/EDA/Perl/bin $path_in = "weiliu.txt"; $path_out = ">weiliu.dat"; open(FILE_IN,$path_in)||die"can not open the file: $!"; open(FILE_OUT,$…
有太多次写完一个perl程序,需要另外新建一个文件来测试,每次觉得很繁琐,但又不得不这么做.没想到原来perl已经提供了解决方案,这就是DATA. 使用很简单,见下面这个例子: #!/usr/bin/perl while (<DATA>) { print; } __DATA__ hello perl 输出结果: hello perl 这个用法太方便太perl了,以后再也不需要使用新建文件的笨方法了. 下面是解释: <IN>可以从打开的句柄IN中获得数据,<STDIN>可…