$|就是一个变量啦,是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数组中的每个元素都打印出来
楼上正解,补充说明:$_ 是内置变量,给你一个最容易理解的例子:
while(
{
print "$_"; // 打印变量里面的内容
}
如果写成这样
while($local=
{
print "$local";
}
perl就会将从屏幕输入的值给变量$local 而不是放到默认变量$_里面去
还有一点 $locip =~ s/\./,/gi; 这里面的 =~ 意思是与变量$locip里面的值匹配, 而不是与$_ 里面的值匹配
比如 while(/s\./,/gi) 这样就是与$_ 里面的值匹配了。
"\"是 escape character 让它后面的符号按照字面意义解释,而不是特殊的含义,因为"."在表达式里面代表任意一个单个字符,但如果前面加上"\"则表示一个"点号"而不再代表单一一个字符了。
我也是新手,大家可以多交流 我的Q是316629457
多谢加我 注明 perl 编程
$|=1;表示清除缓存
s/\./,/gi 意思是把所有的.替换成,
$_是内置变量。你可以看看perldoc
perl是一种unix下面的脚本语言集大成者,当然可以在windows平台下使用,有很多软件完成这一任务如activeperl。
perl内部使用了很多内置变量,这是描述性语言为了简洁易写性而搞的一种“把戏”,但是其易读性让初学者很不爽,可以把它们看作是编程语言里面的宏。