正所谓前人栽树,后人乘凉。
参考资料 RUNBBO
1. Perl文件操作
-
Perl 使用一种叫做文件句柄类型的变量来操作文件。
-
从文件读取或者写入数据需要使用文件句柄。
-
文件句柄(file handle)是一个I/O连接的名称。
-
Perl提供了三种文件句柄:STDIN,STDOUT,STDERR,分别代表标准输入、标准输出和标准出错输出。
Perl 中打开文件可以使用以下方式:
open FILEHANDLE, EXPR
open FILEHANDLE **参数说明:**
FILEHANDLE:文件句柄,用于存放一个文件唯一标识符。
EXPR:文件名及文件访问类型组成的表达式。
MODE:文件访问类型。
PERMS:访问权限位(permission bits)。
1.1 open函数
open(DATA, "<file.txt");
表示使用 open 函数以只读的方式(<)打开文件 file.txt
<表示只读方式。
代码中的 DATA 为文件句柄用于读取文件
以下实例将打开文件并将文件内容输出:
#!/usr/bin/perl
open(DATA, "<file.txt") or die "file.txt 文件无法打开, $!";
while(<DATA>){
print "$_";
}
下表列出了不同的访问模式:
< 或 r 只读方式打开,将文件指针指向文件头。
> 或 w 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
>> 或 a 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
+< 或 r+ 读写方式打开,将文件指针指向文件头。
+> 或 w+ 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
+>> 或 a+ 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
1.2 close函数
在文件使用完后,要关闭文件,以刷新与文件句柄相关联的输入输出缓冲区,关闭文件的语法如下:
close FILEHANDLE
close FILEHANDLE 为指定的文件句柄,如果成功关闭则返回 true。
close(DATA) || die "无法关闭文件";
1.3 读写文件
**这里主要介绍
实例
#!/usr/bin/perl
open(DATA,"<import.txt") or die "无法打开数据";
@lines = <DATA>;
print @lines; # 输出数组内容
close(DATA);
1.4 输出函数
对于所有从文件句柄中读取信息的函数,在后端主要的写入函数为 print:
print FILEHANDLE LIST
print LIST
print
2. Perl特殊变量
-
Perl 语言中定义了一些特殊的变量,通常以 $, @, 或 % 作为前缀,例如:$_。
-
最常用的特殊变量为 $_,该变量包含了默认输入和模式匹配内容。
特殊变量类型:
根据特殊的变量的使用性质,可以分为以下几类:
全局标量特殊变量。
全局数组特殊变量。
全局哈希特殊变量。
全局特殊文件句柄。
全局特殊常量。
正则表达式特殊变量。
文件句柄特殊变量。
2.1 全局标量特殊变量
$_ 默认输入和模式匹配内容。
$. 前一次读的文件句柄的当前行号
$! 这个变量的数字值是errno的值,字符串值是对应的系统错误字符串
$0 包含正在执行的脚本的文件名
$ARGV 从默认的文件句柄中读取时的当前文件名
2.2 全局数组特殊变量
@ARGV 传给脚本的命令行参数列表
2.3 全局特殊文件句柄
ARGV 遍历数组变量@ARGV中的所有文件名的特殊文件句柄
STDERR 标准错误输出句柄
STDIN 标准输入句柄
STDOUT 标准输出句柄
2.4 全局特殊常量
__END__ 脚本的逻辑结束,忽略后面的文本。
__FILE__ 当前文件名
__LINE__ 当前行号
__PACKAGE__ 当前包名,默认的包名是main。
2.5 正则表达式特殊变量
$& 前一次成功模式匹配的字符串
$` 前次匹配成功的子串之前的内容
$' 前次匹配成功的子串之后的内容