设为首页 收藏本站
查看: 800|回复: 0

[经验分享] Perl常用内置变量

[复制链接]

尚未签到

发表于 2015-12-26 16:39:27 | 显示全部楼层 |阅读模式
  perl中的一些内置变量,列出比较常用的:
  $_ 函数和正则表达式的默认变量,一般不加参数时perl都会使用该变量,如chomp;或者匹配操作S/**/等;
In map( ) and grep( ) function: $_



1 @upper_case_list = map(uc($_), @list);
  @_ 传递给子程序的默认列表参数,可以通过访问$_[0], $_[1], $_[2]...等来分别访问单个参数。
  $! 系统错误时自动会保存信息到该变量,如打开文件出错等。此时可以查看该变量。(see also $^E)
$^E Extented OS Error information
$^I 默认值undef,这不会影响程序。但如果将其赋值为某个字符串,该字符串就会变成备份文件的拓展名。比如使用钻石操作符打开文件时,perl的操作是,先将打开的文件名改成加了拓展名的文件名,然后再新建一个原来的文件名的文件,然后在程序一行行读入文件内容并做一些改动后,会保存到新文件中去。这样就相当于修改了文件内容,并将老文件进行了备份。当然,如果值是undef,则不会备份旧文件。
$ARGV 从 < >读取时的当前文件名
@ARGV perl命令行输入参数,比如多个文件名:$ARGV[0],$ARGV[1]...
  $` 匹配起始位置之前的字符串 $& 整个匹配的字符串 $' 匹配结束位置之后的字符串
  举例如下:"ABCDEFG" =~ /CD/; print " $` - $& - $' "; 打印结果:AB - CD - EFG
  $a, $b 在sort( ) 函数中:



1 # same thing, but with explicit sort routine
2 @articles = sort {$a cmp $b} @files;
3 # now case-insensitively
4 @articles = sort {uc($a) cmp uc($b)} @files;
5 # same thing in reversed order
6 @articles = sort {$b cmp $a} @files;
  $^O 操作系统名称 OS Name when perl was built
  $$ Pid
$( Group id
$] Perl版本号+小数点patch level 5.006001
$. 最后一次读取的文件句柄的当前行
$" separator for print "@array"; 打印列表时的分隔符
$@ 错误信息 Error string of last eval( )
$? 子进程返回的状态码 Status code return by child process, closed pipe, `` etc
匹配捕获:$1, $2, …, $+ (last bracket matches)
$0 程序名 Program name
%ENV 环境变量:  foreach $key (keys(%ENV)) {print "$key\t$ENV{$key}\n";}
  %SIG 信号句柄:



1 $SIG{"HUP"} = "IGNORE";
2 $SIG{"INT"} = "DEFAULT";
3 $SIG{"QUIT"}= \&My_handler;
4 $SIG{__WARNING__} = sub {
5 die $_[0];
6 }
  STDERR 用于标准出错内容的特殊文件句柄
  STDIN 用于标准输入的特殊文件句柄
STDOUT 用于标准输出内容的特殊文件句柄
  关于标准输出STDOUT和标准错误STDERR的区别,可参考这里:http://liucheng.name/872/
  参考perldoc perlvar 查询更多其他变量。。。
  updated: 2011-12-27 10:36:14
  $| 如果非0,则对当前选定的文件执行写或者打印操作后强制清除缓冲区。
      这个参数可用于产生很酷的进度条。
  DATA 直接从执行它的脚本中获取数据,见这里
  $/ 默认是换行符,因此一般情况下我们使用<>读取文件时都是一行一行读取的,使用local或者undef将使得读取文件直到文件结尾。
  updated: 2013-06-30 18:46
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-156711-1-1.html 上篇帖子: Linux下用perl批量替换文本文件的内容 下篇帖子: Perl replace
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表