1.Perl 特殊变量
Perl 语言中定义了一些特殊的变量,通常以 $, @, 或 % 作为前缀,例如:$_。
很多特殊的变量有一个很长的英文名,操作系统变量 $! 可以写为 $OS_ERROR。
如果你想使用英文名的特殊变量需要在程序头部添加 use English;。这样就可以使用具有描述性的英文特殊变量。
1.1 最常用的特殊变量为 $_,该变量包含了默认输入和模式匹配内容。
实例
#!/usr/bin/perl
foreach ('Google','abc','Taobao') {
print $_;
print "\n";
}
执行以上程序,输出结果为:
Google
abc
Taobao
1.2 以下实例我们不使用 $_ 来输出内容:
#!/usr/bin/perl
foreach ('Google','abc','Taobao') {
print;
print "\n";
}
执行以上程序,输出结果为:
Google
abc
Taobao
实例中,首先输出 "Google" ,接着输出 "abc" ,最后输出 "Taobao" 。
1.3 在迭代循环中,当前循环的字符串会放在 $_ 中, 然后 通过 print 输出。
另外 print 在不指定输出变量,默认情况下使用的也是 $_。
1.4 以下是几处即使没有写明 Perl 也会假定使用 $_ 的地方:
各种单目函数,包括像 ord() 和 int() 这样的函数以及除 "-t"以外所有的文件 测试操作 ("-f","-d"),"-t" 默认操作 STDIN。
各种列表函数,例如 print() 和 unlink()。
没有使用 "=~" 运算符时的模式匹配操作 "m//"、"s///" 和"tr///"。
在没有给出其他变量时是 "foreach" 循环的默认迭代变量。
grep() 和 map() 函数的隐含迭代变量。
当 "while" 仅有唯一条件,且该条件是对 ""操作的结果进行测试时,$_ 就是存放输入记录的默认位置。除了"while" 测试条件之外不会发生这种情况。(助记:下划线在特定操作中是可以省略的。)
2.特殊变量类型
根据特殊的变量的使用性质,可以分为以下几类:
全局标量特殊变量。
全局数组特殊变量。
全局哈希特殊变量。
全局特殊文件句柄。
全局特殊常量。
正则表达式特殊变量。
文件句柄特殊变量。
2.1 全局标量特殊变量
以下列出了所有的标量特殊变量,包含了特殊字符与英文形式的变量:
$_或$ARG 默认输入和模式匹配内容。
$.或$NR 前一次读的文件句柄的当前行号
$/或$RS 输入记录分隔符,默认是新行字符。如用undef这个变量,将读到文件结尾。
$,或$OFS 输出域分隔符
$\或$ORS 输出记录分隔符
$"或$LIST_SEPARATOR 该变量同 $,类似,但应用于向双引号引起的字符串(或类似的内插字符串)中内插数组和切片值的场合。默认为一个空格。
$;或$SUBSCRIPT_SEPARATOR 在仿真多维数组时使用的分隔符。默认为 "\034"。
$^L或$FORMAT_FORMFEED 发送到输出通道的走纸换页符。默认为 "\f".
$:或$FORMAT_LINE_BREAK_CHARACTERS The current set of characters after which a string may be broken to fill continuation fields (starting with ^) in a format. Default is "\n"".
$^A或$ACCUMULATOR 打印前用于保存格式化数据的变量
$#或$OFMT 打印数字时默认的数字输出格式(已废弃)。
$?或$CHILD_ERROR 返回上一个外部命令的状态
$!或$OS_ERROR or $ERRNO 这个变量的数字值是errno的值,字符串值是对应的系统错误字符串
$@或$EVAL_ERROR 命令eval的错误消息.如果为空,则表示上一次eval命令执行成功
$$或$PROCESS_ID or $PID 运行当前Perl脚本程序的进程号
$<或$REAL_USER_ID or $UID 当前进程的实际用户号

$> 当前进程的有效用户号
$EFFECTIVE_USER_ID or $EUID
$( 当前进程的实际组用户号
$REAL_GROUP_ID or $GID
$) 当前进程的有效组用户号
$EFFECTIVE_GROUP_ID or $EGID
$0 包含正在执行的脚本的文件名
$PROGRAM_NAME
$[ 数组的数组第一个元素的下标,默认是 0。
$] Perl的版本号
$PERL_VERSION
$^D 调试标志的值
$DEBUGGING
$^E 在非UNIX环境中的操作系统扩展错误信息
$EXTENDED_OS_ERROR
$^F 最大的文件捆述符数值
$SYSTEM_FD_MAX
$^H 由编译器激活的语法检查状态
$^I 内置控制编辑器的值
$INPLACE_EDIT
$^M 备用内存池的大小
$^O 操作系统名
$OSNAME
$^P 指定当前调试值的内部变量
$PERLDB
$^T 从新世纪开始算起,脚步本以秒计算的开始运行的时间
$BASETIME
$^W 警告开关的当前值
$WARNING
$^X Perl二进制可执行代码的名字
$EXECUTABLE_NAME
$ARGV 从默认的文件句柄中读取时的当前文件名
2.2 全局数组特殊变量
@ARGV 传给脚本的命令行参数列表
@INC 在导入模块时需要搜索的目录列表
@F 命令行的数组输入
2.3 全局哈希特殊变量
%INC
散列表%INC包含所有用do或require语句包含的文件.关键字是文件名,值是这个文件的路径
%ENV
包含当前环境变量
%SIG
信号列表及其处理方式
2.4全局特殊文件句柄
ARGV
遍历数组变量@ARGV中的所有文件名的特殊文件句柄
STDERR
标准错误输出句柄
STDIN
标准输入句柄
STDOUT
标准输出句柄
DATA
特殊文件句柄引用了在文件中 __END__ 标志后的任何内容包含脚本内容。或者引用一个包含文件中__DATA__ 标志后的所有内容,只要你在同一个包有读取数据,__DATA__ 就存在。
_ (下划线)
特殊的文件句柄用于缓存文件信息(fstat、stat和lstat)。
全局特殊常量
__END__
脚本的逻辑结束,忽略后面的文本。
__FILE__
当前文件名
__LINE__
当前行号
__PACKAGE__
当前包名,默认的包名是main。
正则表达式特殊变量
$n
包含上次模式匹配的第n个子串
$&
前一次成功模式匹配的字符串
$MATCH
$`
前次匹配成功的子串之前的内容
$PREMATCH
$'
前次匹配成功的子串之后的内容
$POSTMATCH
$+
与上个正则表达式搜索格式匹配的最后一个括号。例如:
/Version: (.*)|Revision: (.*)/ && ($rev = $+);
$LAST_PAREN_MATCH
文件句柄特殊变量
$|
如果设置为零,在每次调用函数write或print后,自动调用函数fflush,将所写内容写回文件
$OUTPUT_AUTOFLUSH
$%
当前输出页号
$FORMAT_PAGE_NUMBER
$=
当前每页长度。默认为 60。
$FORMAT_LINES_PER_PAGE
$-
当前页剩余的行数
$FORMAT_LINES_LEFT
$~
当前报表输出格式的名称。默认值是文件句柄名。
$FORMAT_NAME
$^
当前报表输出表头格式的名称。默认值是带后缀"_TOP"的文件句柄名。
$FORMAT_TOP_NAME

19-Perl 特殊变量的更多相关文章

  1. perl 纯变量(Scalar) 转载

    转载http://blog.chinaunix.net/uid-20639775-id-154591.html Perl有三种变量: 纯变量(Scalar Varible) 数组(Array) 关联数 ...

  2. Perl的变量

    变量 在perl中,普通变量被称为"标量变量"(scalar),标量是指单个值的意思.还有非标量的数据,如数组.列表.hash等.标量变量和这种非标量的关系,类似于英语里面的单数和 ...

  3. Perl的变量及语境(一)

    Perl语言中的大部分语句表达式后都紧接一个分号,分隔不同的Perl语句. perl解释器能一次完成编译和运行这两个动作. perl通过一对反引号"``"来表示运行外部命令. 也可 ...

  4. 2章 perl标量变量

    标量变量 单单存储一个值得变量   ,单个标量值 $name   为变量  区分大小写 $barney=$barney*2   第一次  取值  等号右边    :第二次  赋值 等号左边 双目操作符 ...

  5. perl 数组变量(Array) 转载

    Perl 变量(2)--数组 原文地址:Perl 变量(2)--数组 作者:飞鸿无痕 二.数组 数组是标量数据的有序列表. 数组可以含任意多个元素.最小的数组可以不含元素,而最大的数组可以占满全部可用 ...

  6. perl静态变量

    state操作符功能类似于C里面的static修饰符,state关键字将局部变量变得持久. state也是词法变量,所以只在定义该变量的词法作用域中有效,举个例子: #!/usr/bin/perl u ...

  7. perl检查变量是否定义

    my $label = defined($pieces[0]) ? $pieces[0] : ""; my @alreadyAddedCol = $node1->{DB}-& ...

  8. perl选项、特殊变量、一些函数参考手册

    perl一行式程序系列文章:Perl一行式 本文用来收集Perl一行式中涉及到的一些选项.特殊变量的说明,可以用来做速查手册. 本文会逐渐更新. 第一次学Perl一行式时,请直接忽略本文内容,并直接从 ...

  9. perl 学习笔记

    一:基础 1:安装perl      centos: yum -y install perl       官网:https://www.perl.org/      升级到5.22:先下载,执行./i ...

  10. Perl的调试方法

    来源: http://my.oschina.net/alphajay/blog/52172 http://www.cnblogs.com/baiyanhuang/archive/2009/11/09/ ...

随机推荐

  1. 如何选CDN:互联网大直播时代的CDN选择指南

    转: 如何选CDN:互联网大直播时代的CDN选择指南 from:  http://www.chnvideo.com/blog-classic-cdn.html SRS 编码器   如何选CDN:互联网 ...

  2. HTTP之缓存技术

    1. 缓存简介 缓存是位于服务器和客户端的中间单元,主要根据用户代理发送过来的请求,向服务器请求相关内容后提供给用户,并保存内容副本,例如 HTML 页面.图片.文本文件或者流媒体文件.然后,当下一个 ...

  3. Python 生成随机数函数和加密函数(MD5)

    内容来自debugtalk import hashlib import random import string def gen_random_string(str_len): '''生成指定长度的随 ...

  4. 前端知识点回顾之重点篇——ES6的async函数和module

    async函数 ES2017 标准引入了 async 函数,使得异步操作变得更加方便. async 函数是 Generator 函数的语法糖 什么是语法糖? 意指那些没有给计算机语言添加新功能,而只是 ...

  5. ubuntu下如何关闭某个端口?

    1. 开启防火墙 sudo ufw enable 2. 关闭某个端口,如80端口 sudo ufw deny 80 3. 查询当前防火墙状态 sudo ufw status

  6. Django之通用视图

    01-介绍 通用视图把视图开发中常用的写法和模式抽象出来,让你编写少量代码就能快速实现常见的数据视图.显示对象列表就是这样一种任务. Django 自带的通用视图能实现下述功能: 1.列出对象并显示单 ...

  7. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-5.HttpClient4.x工具获取使用

    笔记 5.HttpClient4.x工具获取使用     简介:讲解httpClient4.x相关依赖,并封装基本方法. 1.加入依赖         <dependency>       ...

  8. 使用AWS、Docker与Rancher提供弹性的生产级服务

    2017-07-26 开始想你的 RancherLabs AWS Summit 2017 Beijing已经圆满落幕啦!亚马逊公司首席技术官沃纳·威格尔博士莅临现场,分享 AWS 最新云解决方案,把握 ...

  9. 用Python计算三角函数之acos()方法的使用

    用Python计算三角函数之acos()方法的使用 acos()方法返回x的反余弦值,以弧度表示. 语法 以下是acos()方法的语法:     acos(x) 注意:此函数是无法直接访问的,所以我们 ...

  10. ElasticSearch——自定义模板

    output中配置 elasticsearch{ action => "index" hosts => ["xxx"] index => &q ...