加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl中的默认变量@_和$_的含义以及 perl的内置变量

发布时间:2020-12-15 23:53:46 所属栏目:大数据 来源:网络整理
导读:@_表示 传递给函数的所有参数。 ------------------------------------------------------------------------------------------------------- @_的示例: #!/bin/perl -w use strict; fun( 111,222,333 ); sub fun() { ?print @_; } 这里会把传入函数的参数

@_表示 传递给函数的所有参数。

-------------------------------------------------------------------------------------------------------

@_的示例:

#!/bin/perl -w

use strict;

&fun( 111,222,333 );

sub fun()

{

?print @_;

}

这里会把传入函数的参数111222333打印出来。

---------------------------------------------------------------------------------------------

$_ 是默认参数的意思,指的是在不指定的情况下,程序处理的上一个变量,

比如

open(IN,"<file.txt")

while(<IN>)

{

? ?print $_;

}

close(IN);

这个例子是打开一个文本文件,读取每一行,在没有指定参数的情况下,$_当时指向了从文件中读取的每一行。

--------------------------------------------------------------------------------------------------

@_和$_都是perl很常用的特殊变量。建议系统看一下《perl语言入门》。

----------------------------------------------------------------------------------------------------------------

另附perl常用特殊变量列表:



$- 当前页可打印的行数,属于Perl格式系统的一部分


$! 根据上下文内容返回错误号或者错误串


$” 列表分隔符


$# 打印数字时默认的数字输出格式


$$ 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


包含正在执行的脚本的文件名


$ARGV 从默认的文件句柄中读取时的当前文件名


%ENV 环境变量列表


%INC 通过do或require包含的文件列表


%SIG 信号列表及其处理方式


@_ 传给子程序的参数列表


@ARGV 传给脚本的命令行参数列表


@INC 在导入模块时需要搜索的目录列表


$-[0]和$+[0] 代表当前匹配的正则表达式在被匹配的字符串中的起始和终止的位置

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读