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. MyBatis逆向工程代码的生成以及使用详解(持续更新)

    逆向工程简介什么是逆向工程:        mybatis需要程序员自己编写sql语句,mybatis官方提供逆向工程,可以针对单表自动生成mybatis执行所需要的代码(mapper.java.ma ...

  2. 重构学习day01 类型码 类型码的上层建筑 与类型码相关的重构方法 1.使用子类代替类型码 2.使用状态或策略模式代替类型码

    名词:类型码 类型码的上层建筑 重构方法 1.使用子类代替类型码 2.使用状态/策略模式代替类型码 类中存在方法把某个字段当作条件,根据字段值的不同,进行不同的处理.(自定义概念)则这个字段叫做:类型 ...

  3. Codeforces Round #396 (Div. 2) A

    While Mahmoud and Ehab were practicing for IOI, they found a problem which name was Longest common s ...

  4. 用python编写一个计算器

    # 1 - 2 * ((60-30 +(-40.0/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 )) - (-4*3)/ (16-3*2)))# 通过Pyt ...

  5. c#学习系列之跳出循环 break,continue

    break是完全跳出循环: ) { ) break; Console.WriteLine(a++); } 此处输出1,2,3,4,5,6,7,8 continue是跳出当前的循环: ;i<=;i ...

  6. [译]Understanding ECMAScript 6 说明

    说明 JavaScript核心语言功能定义在ECMA-262中,此标准定义的语言是ECMAScript,浏览器中的JavaScript和Node.js环境是它的超级.当浏览器与Node.js想要通过额 ...

  7. Haproxy常见用法

    简介 HAProxy 提供高可用性.负载均衡以及基于 TCP 和 HTTP 应用的代理,支持虚拟主机, 它是免费.快速并且可靠的一种解决方案. HAProxy 特别适用于那些负载特大的 web 站点, ...

  8. Kettle Rest大文件上传(RestUploadFile.ktr) Rest文件下载(FileDownload.ktr)

    1. Rest大文件上传(RestUploadFile.ktr) 需求描述 上传文件大于10M小于500M 上传文件进行分片(5M一片要比1M分片整体时间快) 先使用java类进行功能模拟在迁移Ktr ...

  9. Java编程基础-运算符

    Java中的运算符大致分为:算术运算符.赋值运算符.关系运算符.逻辑运算符和位运算符五类. (1).算术运算符:+  -  *  /  %  ++  -- (2).赋值运算符:=  +=  -=  * ...

  10. kickstart_2018_round_H_C Let Me Count The Ways

    思路: 容斥. 实现: #include <bits/stdc++.h> using namespace std; typedef long long ll; ; ; ll f[MAXN ...