perl 第七弹 变量 IV
Posted 流浪骆驼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了perl 第七弹 变量 IV相关的知识,希望对你有一定的参考价值。
上期回顾
哈希是一组无序的键/值对
哈希的名字必须以%开头
哈希的键是唯一的
通过访问哈希的键即可获取键对应的值
对哈希指定的键再次赋值,即可更新
使用delete函数,通过哈希指定的键删除键值对
添加 key/value 对可以通过赋值来完成
预定义变量
Perl提供了大量的预定义变量,下面列举了常用的一些预定义变量:
$! 获取当前错误信息值,常用于die命令
# 通过open函数打开AAA.txt,如果不能打开, 则die ,输出$!中的信息
# or 为逻辑运算符,如果前面为真,则不运行后面语句
# die函数用于在命令或文件句柄失败时退出Perl脚本
open IN,"AAA.txt" or die $!;
# 假设AAA.txt确实不存在,输出:
# No such file or directory at Example.pl line 1.
$_ 在执行输入和模式搜索操作时使用的默认空格变量
# 示例
# 通过while循环,逐行读取AAA.txt的内容
while(<IN>){
# 并将每行打印到屏幕上
print;
}
# 上例等同于
# 逐行读取的内容赋值给$_
while($_ = <IN>){
print STDOUT $_;
}
$. 文件中最后处理的当前行号
# 通过while循环,逐行读取AAA.txt的内容
while(<IN>){
# 如果行号大于6,则print
if ($. > 6){
print;
}
}
$@ 由最近一个eval()运算符提供的Perl语法报错信息
# eval 、 $@ 用于报错捕获,可以基于获取到的报错进一步处理
eval '$answer =' ;
print $@ ;
@ARGV 含有命令行参数
#例如已有Example2.pl脚本,脚本内容如下:
# 判断是否有外部传参
if (@ARGV){
# 获取命令行传递的参数,并连接为一个字符串
print join("",@ARGV);
}
# 命令行执行脚本
perl Example2.pl 1 23 4 5
输出:
12345
@INC 库文件的搜索路径
# 在执行脚本前,将一些包路径加入到@INC中
# perl加载包时即查找@INC中是否存在该包
BEGIN{
unshift (@INC,"/home/vvv/perl_package/");
};
@_ 在子例程中,@_变量含有传递给该子例程的变量内容
# 示例
# 自定义test_function函数
sub test_function{
# 将传递的第一个参数,传递给变量$parameter
my $parameter = shift;
# 打印$parameter
print $parameter ;
}
# 等同于上例
sub test_function{
my $parameter = shift (@_);
print $parameter ;
}
%ENV 关联数组型变量%ENV含有当前环境信息
$1,$2, ... 正则捕获
$test_str = "There is no royal road to learning." ;
$test_str =~ /no (.*?) road to (.*?).$/;
print "$1\t$2\n" ;
__END__
(output)
royal learning
$/ input record separator(输入分隔符)
示例
">"; / =
此时程序会将>视为每行结束,而非回车
总结
ps:
变量、数组、哈希、预定义变量,这些各自的特点需要分清楚才能正确使用。这一部分告一段落,如有不熟悉,要及时回顾啊~
下面我们就要开始学习各种函数,如同百宝箱一样~~
以上是关于perl 第七弹 变量 IV的主要内容,如果未能解决你的问题,请参考以下文章