perl 變量 $/ 的用法解析 上下文為行模式時(shí),$/ 定義以什么來區(qū)分行
更新時(shí)間:2013年03月20日 22:58:58 作者:
默認(rèn)狀態(tài)下,很顯然都是用\n來區(qū)分行,\n也被我們稱作為換行符。當(dāng)讀取序列時(shí),按行來讀取時(shí),就是以換行符為標(biāo)準(zhǔn)
默認(rèn)狀態(tài)下,很顯然都是用\n來區(qū)分行,\n也被我們稱作為換行符。
當(dāng)讀取序列時(shí),按行來讀取時(shí),就是以換行符為標(biāo)準(zhǔn)。
讀取的strawberry1.gb的文件內(nèi)容如下:
LOCUS JX118024 460 bp DNA linear PLN 25-SEP-2012
DEFINITION Fragaria vesca subsp. americana RNA polymerase beta subunit (rpoC1)
gene, partial cds; plastid.
/
ACCESSION JX118024
//
VERSION JX118024.1 GI:402238751
KEYWORDS .
how
///
SOURCE plastid Fragaria vesca subsp. americana
第一個(gè)例子:默認(rèn)情況
#!/bin/perl
my $record =' ';
open (DNAFILENAME,'f:\\perl\\strawberry1.gb')||die("can not open the file!");
$record = <DNAFILENAME>;
print $record;
這個(gè)就是沒有任何的改動(dòng)的情況,也就是默認(rèn)的每次讀取一行,結(jié)果如下:
F:\>perl\b.pl
LOCUS JX118024 460 bp DNA linear PLN 25-SEP-2012
如果我們對(duì)$/的值給改變一下,按照我們文件的特征,我們先改動(dòng)為$/=“///\n;
#!/bin/perl
my $record =' ';
open (DNAFILENAME,'f:\\perl\\strawberry1.gb')||die("can not open the file!");
$/="http:///\n";
$record = <DNAFILENAME>;
print $record;
我們得到的結(jié)果如下:
F:\>perl\b.pl
LOCUS JX118024 460 bp DNA linear PLN 25-SEP-2012
DEFINITION Fragaria vesca subsp. americana RNA polymerase beta subunit (rpoC1)
gene, partial cds; plastid.
/
ACCESSION JX118024
//
VERSION JX118024.1 GI:402238751
KEYWORDS .
how
///
我們可以看到在這里,這一行是以///為分隔符的,///以上的整個(gè)部分都被看成一行。
同樣不僅是字符可以作為分隔符,字母也可以,加入我們以how為分隔符,$/="how\n";
#!/bin/perl
my $record =' ';
open (DNAFILENAME,'f:\\perl\\strawberry1.gb')||die("can not open the file!");
$/="how\n";
$record = <DNAFILENAME>;
print $record;
結(jié)果如下:
C:\Documents and Settings\Administrator>f:perl\b.pl
LOCUS JX118024 460 bp DNA linear PLN 25-SEP-2012
DEFINITION Fragaria vesca subsp. americana RNA polymerase beta subunit (rpoC1)
gene, partial cds; plastid.
/
ACCESSION JX118024
//
VERSION JX118024.1 GI:402238751
KEYWORDS .
how
C:\Documents and Settings\Administrator>
同樣我們也可以完全拋棄傳統(tǒng)意義上的行,例如,我們以例子中的第五行的ACCESSION為分隔符:
#!/bin/perl
my $record =' ';
open (DNAFILENAME,'f:\\perl\\strawberry1.gb')||die("can not open the file!");
$/="ACCESSION";
$record = <DNAFILENAME>;
print $record;
結(jié)果如下:
F:\>perl\b.pl
LOCUS JX118024 460 bp DNA linear PLN 25-SEP-2012
DEFINITION Fragaria vesca subsp. americana RNA polymerase beta subunit (rpoC1)
gene, partial cds; plastid.
/
ACCESSION
F:\>
再來看一個(gè)例子:以/\n為分隔符:
#!/bin/perl
my $record =' ';
open (DNAFILENAME,'f:\\perl\\strawberry1.gb')||die("can not open the file!");
$/="/\n";
$record = <DNAFILENAME>;
print $record;
我們期望的結(jié)果應(yīng)該是配匹到第四行以前的內(nèi)容為一行,但是結(jié)果是否如此?
F:\>perl\b.pl
LOCUS JX118024 460 bp DNA linear PLN 25-SEP-2012
DEFINITION Fragaria vesca subsp. americana RNA polymerase beta subunit (rpoC1)
gene, partial cds; plastid.
/
ACCESSION JX118024
//
F:\>
為什么沒有匹配到第一個(gè)/ 呢?
其實(shí)這里/這一行并不是僅僅有一個(gè)/,而是還有其他的成分在這里,我們把這一行完全刪除,然后重新只輸入一個(gè)/,我們?cè)賮砥ヅ?
F:\>perl\b.pl
LOCUS JX118024 460 bp DNA linear PLN 25-SEP-2012
DEFINITION Fragaria vesca subsp. americana RNA polymerase beta subunit (rpoC1)
gene, partial cds; plastid.
/
F:\>
這次就得到正確的結(jié)果了。
當(dāng)讀取序列時(shí),按行來讀取時(shí),就是以換行符為標(biāo)準(zhǔn)。
讀取的strawberry1.gb的文件內(nèi)容如下:
LOCUS JX118024 460 bp DNA linear PLN 25-SEP-2012
DEFINITION Fragaria vesca subsp. americana RNA polymerase beta subunit (rpoC1)
gene, partial cds; plastid.
/
ACCESSION JX118024
//
VERSION JX118024.1 GI:402238751
KEYWORDS .
how
///
SOURCE plastid Fragaria vesca subsp. americana
第一個(gè)例子:默認(rèn)情況
復(fù)制代碼 代碼如下:
#!/bin/perl
my $record =' ';
open (DNAFILENAME,'f:\\perl\\strawberry1.gb')||die("can not open the file!");
$record = <DNAFILENAME>;
print $record;
這個(gè)就是沒有任何的改動(dòng)的情況,也就是默認(rèn)的每次讀取一行,結(jié)果如下:
F:\>perl\b.pl
LOCUS JX118024 460 bp DNA linear PLN 25-SEP-2012
如果我們對(duì)$/的值給改變一下,按照我們文件的特征,我們先改動(dòng)為$/=“///\n;
復(fù)制代碼 代碼如下:
#!/bin/perl
my $record =' ';
open (DNAFILENAME,'f:\\perl\\strawberry1.gb')||die("can not open the file!");
$/="http:///\n";
$record = <DNAFILENAME>;
print $record;
我們得到的結(jié)果如下:
F:\>perl\b.pl
LOCUS JX118024 460 bp DNA linear PLN 25-SEP-2012
DEFINITION Fragaria vesca subsp. americana RNA polymerase beta subunit (rpoC1)
gene, partial cds; plastid.
/
ACCESSION JX118024
//
VERSION JX118024.1 GI:402238751
KEYWORDS .
how
///
我們可以看到在這里,這一行是以///為分隔符的,///以上的整個(gè)部分都被看成一行。
同樣不僅是字符可以作為分隔符,字母也可以,加入我們以how為分隔符,$/="how\n";
復(fù)制代碼 代碼如下:
#!/bin/perl
my $record =' ';
open (DNAFILENAME,'f:\\perl\\strawberry1.gb')||die("can not open the file!");
$/="how\n";
$record = <DNAFILENAME>;
print $record;
結(jié)果如下:
C:\Documents and Settings\Administrator>f:perl\b.pl
LOCUS JX118024 460 bp DNA linear PLN 25-SEP-2012
DEFINITION Fragaria vesca subsp. americana RNA polymerase beta subunit (rpoC1)
gene, partial cds; plastid.
/
ACCESSION JX118024
//
VERSION JX118024.1 GI:402238751
KEYWORDS .
how
C:\Documents and Settings\Administrator>
同樣我們也可以完全拋棄傳統(tǒng)意義上的行,例如,我們以例子中的第五行的ACCESSION為分隔符:
復(fù)制代碼 代碼如下:
#!/bin/perl
my $record =' ';
open (DNAFILENAME,'f:\\perl\\strawberry1.gb')||die("can not open the file!");
$/="ACCESSION";
$record = <DNAFILENAME>;
print $record;
結(jié)果如下:
F:\>perl\b.pl
LOCUS JX118024 460 bp DNA linear PLN 25-SEP-2012
DEFINITION Fragaria vesca subsp. americana RNA polymerase beta subunit (rpoC1)
gene, partial cds; plastid.
/
ACCESSION
F:\>
再來看一個(gè)例子:以/\n為分隔符:
復(fù)制代碼 代碼如下:
#!/bin/perl
my $record =' ';
open (DNAFILENAME,'f:\\perl\\strawberry1.gb')||die("can not open the file!");
$/="/\n";
$record = <DNAFILENAME>;
print $record;
我們期望的結(jié)果應(yīng)該是配匹到第四行以前的內(nèi)容為一行,但是結(jié)果是否如此?
F:\>perl\b.pl
LOCUS JX118024 460 bp DNA linear PLN 25-SEP-2012
DEFINITION Fragaria vesca subsp. americana RNA polymerase beta subunit (rpoC1)
gene, partial cds; plastid.
/
ACCESSION JX118024
//
F:\>
為什么沒有匹配到第一個(gè)/ 呢?
其實(shí)這里/這一行并不是僅僅有一個(gè)/,而是還有其他的成分在這里,我們把這一行完全刪除,然后重新只輸入一個(gè)/,我們?cè)賮砥ヅ?
F:\>perl\b.pl
LOCUS JX118024 460 bp DNA linear PLN 25-SEP-2012
DEFINITION Fragaria vesca subsp. americana RNA polymerase beta subunit (rpoC1)
gene, partial cds; plastid.
/
F:\>
這次就得到正確的結(jié)果了。
相關(guān)文章
perl去除重復(fù)內(nèi)容的腳本代碼(重復(fù)行+數(shù)組重復(fù)字段)
perl去除重復(fù)內(nèi)容的小腳本,有需要的朋友可以參考下,包括重復(fù)行、數(shù)據(jù)組中重復(fù)的字段2013-03-03Perl遍歷目錄和使用Linux命令分析日志的代碼實(shí)例分享
這篇文章主要介紹了Perl遍歷目錄和使用Linux命令分析日志的代碼分享,需要的朋友可以參考下2014-05-05perl實(shí)現(xiàn)的兩個(gè)文件對(duì)比并對(duì)數(shù)據(jù)進(jìn)行篩選的腳本代碼
對(duì)比兩個(gè)文件并對(duì)數(shù)據(jù)進(jìn)行篩選的perl腳本,涉及到哈希的應(yīng)用和perl編程風(fēng)格的改變。有需要的朋友可以參考下2013-03-03用perl實(shí)現(xiàn)生物突變的隨機(jī)模擬程序代碼
perl寫的生物突變的隨機(jī)模擬程序,有需要的朋友可以參考下2013-03-03- fdupe 是一個(gè)很小的 Perl 腳本,用來檢索指定目錄并找出其中重復(fù)的文件,該腳本是通過文件內(nèi)容來識(shí)別是否重復(fù)文件,而非文件名。fdupe 無需其他 Perl 腳本支持,運(yùn)行速度非???/div> 2013-03-03
最新評(píng)論