几个零散的语法问题请教。$_ shift ..

几个零散的语法问题请教。$_ shift ..

几个零散的语法问题请教。$_ shift ..
if ( $_ = shift )这句话是判断什么?  $_ 和shift分别代表什么?

sub usage{


exit(1);这个exit代表什么?还有其他参数吗?


$0代表什么?有没有$1$2$@?

autoflush(1)代表什么意思?  
STDERR->autoflush(1); ??



I would appreciate you help if you can answer me one or more questions, thank you .
花有重开日,人无再少年
第一个是将字符串shift附给$_,$_是特殊变量,具体含义在任何一本Perl书上都能查到(关于数字和字符串), 第二个 exit(1)是退出并返回真值,还有exit(0)的情况. 下面的问题STDERR-->这个应该是指针,具体含义应该是要看上下文的吧,不太清楚了
$_我知道它的作用大概是储.
$_我知道它的作用大概是储存循环读出的变量。比如while语句之类。好像还可以保存程序运行时候的参数
花有重开日,人无再少年
楼上有些回答错误!--$_.
楼上有些回答错误!
$_ = shift
事实上是 $_ = shift() 的缩写
shift 是一个函数,用于弹出数组的第一个值。不带参数的时候,默认是 @_
意思就是
把 @_[0] 赋值给 $_ 。
至于 @_ $_ 都是系统的内置变量,这些是基础知识,你可以看看书。

$0,$1,$2 都有,都属于内置变量。但是他们含义不同
$0 好像是代码本身的文件名, $1,$2.... 是正则匹配的内容


$_我知道它的作用大概是储.
$_我知道它的作用大概是储存循环读出的变量。比如while语句之类。好像还可以保存程序运行时候的参数,shift是一个很特别的东西,shift(@ARGV)的时候是一个一个冒泡数组里面的内容。取出来后扔掉。
可是if($_=shift)就不知道,应该是个赋值。如果成功就怎样怎样,可是shift到底取得什么,为什么要给$_ ...?

谢谢楼上MM回答。
花有重开日,人无再少年
分区区长,你这样的厉害人物要经常出来指点我们哈,辛苦你啦~~我以后会问一些便于回答的问题,多多指教~
标量环境下,shift成功为1.
标量环境下,shift成功为1,失败为0

你愿意,可以把$_=删了,不影响结果,他写出来就为了让你看的更明白些。

八卦一下,4楼是女的吗?一直都把你当成man噎……
这个缺省的字符串就是 $_ .
这个缺省的字符串就是 $_ 这个特殊标量。实际上,$_ 并不是仅仅是模式匹配的缺省字符串。其它的一些操作符缺省也使用 $_ 变量。因此一个有经验的 Perl 程序员会将上个例子写成:
while (<FILE>) {
print if /http:/;
}
每次循环,shift 操作符都从参数数组中删除一个元素(同时返回这个元素),当数组 @ARGV 用完时循环自动退出,这时候数组长度变为 0,而在 Perl 中认为 0 为假。所以数组本身已经变为“假”。(注:这是 Perl 程序员的看法,因此我们没有比较拿 0 和 0 比较以证实它是否为假。但是其他语言却强迫你这么做,如果你不写 while(@ARGV = 0) 就不退出。这样做不论对你还是对计算机还是以后维护你的代码的人来说,都是效率低下的做法。)

从书上抄了两段,不过也就找到这么一点点介绍---大骆驼
花有重开日,人无再少年
谢谢所有人回答问题。.
我正在研究newsyslog-1.14.pl <Cpan上的例子>,有兴趣的人可以跟我一起交流,谢谢了。 




   

花有重开日,人无再少年