常用的perl 读写文件的操作,我们都很熟悉了,需要先声明1个文件句柄。但是看下面这段代码:
my %organisms = (); while(<DATA>){ chomp; if(/^(S+)s+(S+)$/){ my $u=lc($1); my $v=lc($2); $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 这个句柄,就可以读取到这些内容;
这种用法可以当做数据库来用,当字段较少时,我们直接给哈希赋值就可以了;但是当内容很多时,就可以像上述写法一样;