3 回答

TA貢獻1765條經驗 獲得超5個贊
$|就是一個變量啦,是perl的內置變量,默認情況下是0,如果設置為非0的話,表示當前的輸出不經過緩存立刻輸出,比如你print或者write一個文件,實際是需要經過緩存的,但是設置該變量非0后就不經過緩沖立刻輸出了
$locip =~ s/\./,/gi;是一個正則表達式匹配,對變量$locip進行替換,將$locip中的點(.)替換成逗號(,),g和i都是附加選項,g表示全局替換,就是所有的點(.)都替換成逗號(,),i是忽略大寫,這里沒有什么用
$_也是perl的內置變量,是perl中用的最多的默認變量,一般比如你寫一個循環:foreach (@my_array) { print $_; }
這個循環沒有指定變量,每次遍歷數組my_array的時候就把值賦給了$_,所以你這樣就可以把my_array數組中的每個元素都打印出來

TA貢獻1895條經驗 獲得超7個贊
補充說明:$_ 是內置變量,給你一個最容易理解的例子:
while(<STDIN>) //從屏幕輸入,將輸入結果放到默認變量$_ 里面
{
print "$_"; // 打印變量里面的內容
}
如果寫成這樣
while($local=<STDIN>)
{
print "$local";
}
perl就會將從屏幕輸入的值給變量$local 而不是放到默認變量$_里面去
還有一點 $locip =~ s/\./,/gi; 這里面的 =~ 意思是與變量$locip里面的值匹配, 而不是與$_ 里面的值匹配
比如 while(/s\./,/gi) 這樣就是與$_ 里面的值匹配了。
"\"是 escape character 讓它后面的符號按照字面意義解釋,而不是特殊的含義,因為"."在表達式里面代表任意一個單個字符,但如果前面加上"\"則表示一個"點號"而不再代表單一一個字符了。
添加回答
舉報