1樓:
$/ 為輸入記錄分隔符,預設為換行符。該變數會影響 perl對「行」這一概念的理解。其功能類似於 awk 中的 rs變數,在被設定為空字串時同樣會將空白行作為終止標誌。
(空白行不能含有任何空格或製表符。)
你可以將其設定為含有多個字元的字串,以匹配多字元的終止標誌;也可以設為"undef" 以便一直讀到檔案結束。
當檔案含有連續的空白行時,把它設為"\n\n" 和設為 "" 有少許不同:
設為 "" 會把兩個或更多連續的空白行視為單個 空白行;
local $/; # enable "slurp" mode
local $_ = ; # whole file now here
s/\n[ \t]+/ /g;
切記:$/ 的內容是一個字串,而不是正規表示式。
將 $/設為整數、存有整數的標量或可轉換成整數的標量這些值的引用時,perl會嘗試讀入記錄而不是行,最大記錄長度就是引用的那個整數。
因此這段 **:
local $/ = \32768; # or \"32768", or \$var_containing_32768
open my $fh, $myfile or die $!;
local $_ = ;
會從 file 讀取一條不長於 32768位元組的記錄。如果你不是在讀取一個面向記錄的檔案(或者所用的 os沒有面向記錄的檔案型別),那很可能每次讀取都得到一整塊的資料。若某條記錄比你所設定的記錄長度還大,就會把該記錄拆成若干片 返回。
參見 "newlines" in perlport 以及 $.。
2樓:匿名使用者
自帶的全域性變數,預設值為「\n". perl中」行「的概念就由$/決定。
$data的值就是」this".
3樓:
它會改變你讀取檔案時候,對行的分隔符,一般行都是根據回車分隔,
local $/ = ">" 會根據 > 來分隔行。
請問在perl語言裡面$.代表什麼意思?
4樓:匿名使用者
$! 根據上下文內容返回錯誤號或者錯誤串
$」 列表分隔符
$# 列印數字時預設的數字輸出格式
$$ perl直譯器的程序id
$% 當前輸出通道的當前頁號
$& 與上個格式匹配的字串
$( 當前程序的組id$) 當前程序的有效組id$* 設定1表示處理多行格式.現在多以/s和/m修飾符取代之.
$, 當前輸出欄位分隔符
$. 上次閱讀的檔案的當前輸入行號
$/ 當前輸入記錄分隔符,預設情況是新行
$: 字元設定,此後的字串將被分開,以填充連續的欄位.
$; 在**多維陣列時使用的分隔符.
$? 返回上一個外部命令的狀態
$@ perl直譯器從eval語句返回的錯誤訊息$[ 陣列中第一個元素的索引號
$\ 當前輸出記錄的分隔符
$] perl直譯器的子版本號
$^ 當前通道最上面的頁面輸出格式名字
$^a 列印前用於儲存格式化資料的變數
$^d 除錯標誌的值
$^e 在非unix環境中的作業系統擴充套件錯誤資訊$^f 最大的檔案捆述符數值
$^h 由編譯器啟用的語法檢查狀態
$^i 內建控制編輯器的值
$^l 傳送到輸出通道的走紙換頁符
$^m 備用記憶體池的大小
$^o 作業系統名
$^p 指定當前除錯值的內部變數
$^r 正規表示式塊的上次求值結果
$^s 當前直譯器狀態
$^t 從新世紀開始算起,腳步本以秒計算的開始執行的時間$^w 警告開關的當前值
$^x perl二進位制可執行**的名字
$_ 預設的輸入/輸出和格式匹配空間
$| 控制對當前選擇的輸出檔案控制代碼的緩衝
$~ 當前報告格式的名字
$` 在上個格式匹配資訊前的字串
$』 在上個格式匹配資訊後的字串
$+ 與上個正規表示式搜尋格式匹配的最後一個括號$< 當前執行直譯器的使用者的真實id
$ 含有與上個匹配正規表示式對應括號結果
$= 當前頁面可列印行的數目
$> 當前程序的有效使用者id包含正在執行的指令碼的檔名$ar** 從預設的檔案控制代碼中讀取時的當前檔名%env 環境變數列表
%inc 通過do或require包含的檔案列表%sig 訊號列表及其處理方式
@_ 傳給子程式的引數列表
@ar** 傳給指令碼的命令列引數列表
@inc 在匯入模組時需要搜尋的目錄列表
$-[0]和$+[0] 代表當前匹配的正規表示式在被匹配的字串中的起始和終止的位置
5樓:月輪天唯五
文字中的行號,屬於特殊變數
6樓:哈哈哈
檔案行數的計數器,這個就是說如果當前的行數不等於$i這個變數那麼怎麼樣怎麼樣
perl中$+什麼意思? 30
7樓:連續用
表示圓括號中的子表示式匹配的部分。大多數情況,只需要使用$1, $ 2 , 等 ,而不需要用$+。當正規表示式中有一系列括號時,$+是有用的。
例如:$_ = "alpha be tadelt agamma ";
/alpha (.*)del t a(.*)/;
print "the last ma tch was $ +\n";
perl裡面的$|=1是什麼意思?
8樓:匿名使用者
$|就是一個變數啦,是perl的內建變數,預設情況下是0,如果設定為非0的話,表示當前的輸出不經過快取立刻輸出,比如你print或者write一個檔案,實際是需要經過快取的,但是設定該變數非0後就不經過緩衝立刻輸出了
$locip =~ s/\./,/gi;是一個正規表示式匹配,對變數$locip進行替換,將$locip中的點(.)替換成逗號(,),g和i都是附加選項,g表示全域性替換,就是所有的點(.
)都替換成逗號(,),i是忽略大寫,這裡沒有什麼用
$_也是perl的內建變數,是perl中用的最多的預設變數,一般比如你寫一個迴圈:foreach (@my_array)
這個迴圈沒有指定變數,每次遍歷陣列my_array的時候就把值賦給了$_,所以你這樣就可以把my_array陣列中的每個元素都列印出來
9樓:小猴子
樓上正解,補充說明:$_ 是內建變數,給你一個最容易理解的例子:
while() //從螢幕輸入,將輸入結果放到預設變數$_ 裡面
如果寫成這樣
while($local=)
perl就會將從螢幕輸入的值給變數$local 而不是放到預設變數$_裡面去
還有一點 $locip =~ s/\./,/gi; 這裡面的 =~ 意思是與變數$locip裡面的值匹配, 而不是與$_ 裡面的值匹配
比如 while(/s\./,/gi) 這樣就是與$_ 裡面的值匹配了。
"\"是 escape character 讓它後面的符號按照字面意**釋,而不是特殊的含義,因為"."在表示式裡面代表任意一個單個字元,但如果前面加上"\"則表示一個"點號"而不再代表單一一個字元了。
我也是新手,大家可以多交流 我的q是316629457
多謝加我 註明 perl 程式設計
10樓:
$|=1;表示清除快取
s/\./,/gi 意思是把所有的.替換成,
$_是內建變數。你可以看看perldoc
11樓:顏開飛
perl是一種unix下面的指令碼語言集大成者,當然可以在windows平臺下使用,有很多軟體完成這一任務如activeperl。
perl內部使用了很多內建變數,這是描述性語言為了簡潔易寫性而搞的一種「把戲」,但是其易讀性讓初學者很不爽,可以把它們看作是程式語言裡面的巨集。
「砼」在施工中代表什麼,砼代表什麼意思?
默默她狠傷 在工程設計和施工中,經常把 混凝土 三個字簡寫為 砼 砼 一字的創造者是著名結構學家蔡方蔭教授。創造時間是1953年。砼 預拌混凝土在一定的時間內呈流塑狀態,澆注入模,搗實固化後可以製成各種形狀和大小的構築物或構件,其成型後一段時間裡水泥與水發生水化反應,使混凝土硬化,硬化後的混凝土具有...
這個符號在物理公式中代表什麼意思?說清楚點,謝謝了
次方,如果2就是平方的意思,後面跟3,就是立方的意思。例如 v 2 v v,速度相乘。初中物理公式,符號及理解 p f s p 壓強 帕斯卡 pa f 壓力 牛頓 n s 受力面積 平方米 m 2 壓強 物體單位面積上受到的壓力叫做壓強.壓力 垂直於被壓物體表面上的了.受力面積 物體與物體間的接觸面...
TA在電路圖中代表什麼,TA在電路圖中代表什麼
隔壁小鍋 ta在電路圖中代表電流互感器。電路圖主要由元件符號 連線 結點 註釋四大部分組成。元件符號表示實際電路中的元件,它的形狀與實際的元件不一定相似,甚至完全不一樣。在常用的印刷電路板中往往不是線而是各種形狀的銅箔塊,就像收音機原理圖中的許多連線在印刷電路板圖中並不一定都是線形的,也可以是一定形...