为了账号安全,请及时绑定邮箱和手机立即绑定

perl里面的$|=1是什么意思?

perl里面的$|=1是什么意思?

凤凰求蛊 2019-03-05 11:07:02
perl里面的$|=1是什么意思?
查看完整描述

3 回答

?
POPMUISE

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数组中的每个元素都打印出来

查看完整回答
反对 回复 2019-03-30
?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

补充说明:$_ 是内置变量,给你一个最容易理解的例子:

while(<STDIN>) //从屏幕输入,将输入结果放到默认变量$_ 里面
{
print "$_"; // 打印变量里面的内容
}
如果写成这样
while($local=<STDIN>)
{
print "$local";
}
perl就会将从屏幕输入的值给变量$local 而不是放到默认变量$_里面去

还有一点 $locip =~ s/\./,/gi; 这里面的 =~ 意思是与变量$locip里面的值匹配, 而不是与$_ 里面的值匹配
比如 while(/s\./,/gi) 这样就是与$_ 里面的值匹配了。
"\"是 escape character 让它后面的符号按照字面意义解释,而不是特殊的含义,因为"."在表达式里面代表任意一个单个字符,但如果前面加上"\"则表示一个"点号"而不再代表单一一个字符了。



查看完整回答
反对 回复 2019-03-30
?
慕莱坞森

TA贡献1810条经验 获得超4个赞

$|=1;表示清除缓存

s/\./,/gi 意思是把所有的.替换成,

$_是内置变量。你可以看看perldoc

查看完整回答
反对 回复 2019-03-30
  • 3 回答
  • 0 关注
  • 835 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信