Perl内置特殊变量

 

一、正则表达式特殊变量:
1、$n   :包含上次模式匹配的第n个子串
2、$&   :前一次成功模式匹配的字符串
3、$`   :前次匹配成功的子串之前的内容
4、$’   :前次匹配成功的子串之后的内容
5、$+  :前一次使用括号的模式匹配的字符串.

二、文件句柄特殊变量:
1、$|  :如果设置为零,在每次调用函数write或print后,自动调用函数fflush,将所写内容写回文件
2、$%  :当前输出页号
3、$=  :当前每页长度
4、$-  :当前页剩余的行数
5、$~  :当前报表输出格式的名称.默认值是文件句柄名.
6、$^  :当前报表输出表头格式的名称.默认值是带后缀”_TOP”的文件句柄名.

三、全局特殊变量:
1、$_和$ARG  :默认输入和模式匹配内容.如果不指定接收输入的变量或执行模式匹配的字符串
2、$.和$NR  :前一次读的文件句柄的当前行号
3、$/和$RS  :输入记录分隔符,默认是新行字符.如用undef这个变量,将读到文件结尾
4、$,的$OFS  :输出域分隔符.
5、$\和$ORS  :输出记录分隔符
6、$:    :断行字符,默认是”\n-”三个字符
7、$!  :这个变量的数字值是errno的值,字符串值是对应的系统错误字符串
8、$@  :命令eval的错误消息.如果为空,则表示上一次eval命令执行成功
9、$$  :运行当前Perl脚本程序的进程号
10、$<  :当前进程的实际用户号
11、$>  :当前进程的有效用户号
12、$(  :当前进程的实际组用户号
13、$)  :当前进程的有效组用户号
14、$[  :数组的数组第一个元素的下标,默认是0
15、$]  :Perl的版本号
16、$ARGV  :当使用”< >”读文件时,保存当前文件名

四、全局特殊数组变量:
1、@ARGV  :保存命令行参数
2、@INC  :保存查找Perl程序的目录
3、@_  :在子程序内,这个数组变量包含传递给子程序的参数
4、%INC  :散列表%INC包含所有用do或require语句包含的文件.关键字是文件名,值是这个文件的路径
5、%ENV  :包含当前环境变量
五、全局特殊文件句柄
1、ARGV  :遍历数组变量@ARGV中的所有文件名的特殊文件句柄
2、STDERR  :标准错误输出句柄
3、STDIN  :标准输入句柄
4、STDOUT  :标准输出句柄

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
$0   包含正在执行的脚本的文件名
$ARGV   从默认的文件句柄中读取时的当前文件名
%ENV   环境变量列表
%INC   通过do或require包含的文件列表
%SIG   信号列表及其处理方式
@_   传给子程序的参数列表
@ARGV   传给脚本的命令行参数列表
@INC   在导入模块时需要搜索的目录列表
$-[0]和$+[0]   代表当前匹配的正则表达式在被匹配的字符串中的起始和终止的位置

perl学习之内置变量的更多相关文章

  1. Perl 的内置变量$|

    $|是perl的内置变量,默认情况下是0,如果设置为非0的话,表示当前的输出不经过缓存立刻输出.相当于c语言的fflush()函数,立即刷新缓冲区. 比如你print或者write一个文件,实际是需要 ...

  2. perl学习之六:变量作用域

    变量作用域 (一)包变量 $x = 1 这里,$x是个包变量.关于包变量,有2件重要的事情要了解: 1)假如没有其他申明,变量就是包变量:2)包变量总是全局的. 全局意味着包变量在每个程序里总可访问到 ...

  3. python学习之内置函数(一)

    4.7 内置函数 4.7.1 内置函数(1) eval 执行字符串类型的代码,并返回最终结果. eval('2 + 2') # 4 n=81 eval("n + 4") # 85 ...

  4. python学习之内置函数(二)

    4.7.3 内置函数(2) int() str() bool() set() list():将一个可迭代对象转化为列表 tuple():将一个可迭代对象转换成元组 dic(): 通过相应的方式创建字典 ...

  5. Django 学习之内置Admin

    一.Admin组件 Django内置的Admin是对于model中对应的数据表进行增删改查提供的组件,使用方式有: Django Admin内部依赖: 依赖APP: django.contrib.au ...

  6. Perl中的特殊内置变量详解

    #!/usr/bin/perl -w @array = qw(a b c d); foreach (@array) { print $_," "; } 例子的作用就是定义一个数组并 ...

  7. Perl语言中一些内置变量等,$x、qw、cmp、eq、ne等

    转载 Perl语言中一些内置变量等,$x.qw.cmp.eq.ne等 字母 符号 释义 eq  = = equal(等于) ne != not equal(不等于) cmp 比较 qq  " ...

  8. 学习笔记——Maven 内置变量

    Maven内置变量说明: ${basedir} 项目根目录(即pom.xml文件所在目录) ${project.build.directory} 构建目录,缺省为target目录 ${project. ...

  9. 学习笔记:GLSL Core Tutorial – Vertex Shader(内置变量说明)

    1.每个Vertex Shader都有用户定义的输入属性,例如:位置,法线向量和纹理坐标等.Vertex Shaders也接收一致变量(uniform variables). uniform vari ...

随机推荐

  1. 掌握MySQL数据库这些优化技巧,事半功倍!

    一个成熟的数据库架构并不是一开始设计就具备高可用.高伸缩等特性的,它是随着用户量的增加,基础架构才逐渐完善.这篇文章主要谈谈MySQL数据库在发展周期中所面临的问题及优化方案,暂且抛开前端应用不说,大 ...

  2. 关于foreach的一个BUG

    foreach用起来比for更方便,但是foreach隐藏的操作,可能带来更多未知的BUG,今天就遇到一个问题.编程环境VS2010 //使用foreach遍历,其中未改变item的值,但是使用了匿名 ...

  3. JAVA Debug调试技术

    System.out.println(e),这个方法打印出异常,并且输出在哪里出现的异常,不过它和另外一个e.printStackTrace()方法不同.后者也是打印出异常,但是它还将显示出更深的调用 ...

  4. python入门之数据类型之字符串

    str方法 name.capitalize() 将name的首字母大写 name.center(20,'*') 将name居中,长度变为20,其余用*填充 name.count('chy') 返回na ...

  5. window server 2012R2服务器部署遇到的问题

    1. 出现问题原因:服务器的Framework4.5 未安装, 解决办法:从网上下载之后,安装,然后重启服务器即可 2. 出现问题原因:内存不足或者虚拟内存不足 解决办法:设置虚拟内存来解决,步骤如下 ...

  6. vagrant教程

    http://blog.smdcn.net/article/1308.html http://ninghao.net/blog/1566 如何定制一个自己的 vagrant box: https:// ...

  7. .aspx设置跨域

    在web.config添加节点 <system.webServer>下添加 <httpProtocol>      <customHeaders>        & ...

  8. vue从入门到开发--4--处理http请求

    一: 在main.js里面处理http请求模块,因为没有这个模块,所以需要先安装这个模块:npm install vue-resource --save 安装完毕之后,导入这个模块,并使用中间件将其使 ...

  9. activity间的传参

    Intent有两个作用:激活组件和附带数据 激活另一个activity的方法显示意图:  1.  Intent intent = new Intent();       intent.setClass ...

  10. URAL 1519 Formula 1 (插头DP,常规)

    题意:给一个n*m的矩阵,格子中是'*'则是障碍格子,不允许进入,其他格子都是必走的格子,所走格子形成一条哈密顿回路,问有多少种走法? 思路: 本来是很基础的题,顿时不知道进入了哪个坑.这篇插头DP的 ...