Perl 文件处理简介
在Perl中,一个FileHandle将一个名字与一个外部文件联系起来,这个名字可以一直使用到程序结束或FileHandle被关闭为止。简而言之,FileHandle就像一个连接,可以用来修改一个外部文件的内容,并给这个连接(FileHandle)起了一个名字,以便更快访问和方便。
Perl中的三个基本FileHandle是STDIN、STDOUT和STDERR,它们分别代表标准输入、标准输出和标准错误设备。
文件处理通常是通过open函数完成的。
语法:open(FileHandle, Mode, FileName)
参数。
- FileHandle-文件的引用,可以在程序中使用,也可以在程序关闭前使用。
- Mode–要打开文件的模式。
- FileName- 要打开的文件的名称。
另外,Mode和FileName可以结合在一起,形成一个单一的打开表达式。
语法:open(FileHandle, Expression);
参数:
- FileHandle- 对文件的引用,可以在程序中使用,也可以在程序结束前使用。
- Expression–模式和 FileName 结合在一起。
使用close函数关闭FileHandle。
语法:close(FileHandle);
参数
- FileHandle- 要关闭的 FileHandle。
使用FileHandle从文件中读取和写入文件
从FileHandle中读取文件可以通过print函数完成。
语法:print(<FileHandle>);
参数。
- FileHandle- 以读取模式或类似模式打开的文件柄。
写入文件也可以通过print函数完成。
语法:打印 FileHandle 字符串
参数:
- FileHandle- 在写模式或类似模式下打开的文件柄。
- String- 要插入文件中的字符串。
文件处理的不同模式
模式 | 解释 |
---|---|
< |
只读模式 |
> |
创建文件(如果需要),清除文件的内容并写入文件 |
>> |
创建文件(如有必要),添加到文件中 |
+< |
读取和写入,但不创建 |
+> |
创建文件(如果需要),清除,读和写 |
+>> |
创建文件(如有必要),读取和添加 |
例子:
考虑一个包含 “Welcome to GeeksForGeeks!!!”字符串的Hello.txt文件。
- **Mode = “ <” **
这是只读模式。该模式用于从文件中逐行读取内容。
输出:
- **Mode = “ >” **
这是只写模式。一旦以这种模式打开文件,文件的原始内容就会被清除。如果没有找到的话,它会创建一个同名的新文件。
输出:
- **Mode=” >>” **
这是追加模式。当文件以这种模式打开时,文件的原始内容不会被清除。这种模式不能用来覆盖,因为字符串总是附在结尾处。如果没有找到的话,它会创建一个同名的新文件。
输出:
- **Mode = “+ <“ **
这是读写模式。这可以用来覆盖文件中现有的字符串。它不能创建一个新的文件。
输出:
- **Mode = “+ >” **
这是读写模式。+<
和 +>
之间的区别是,+>
可以创建一个新的文件,如果没有找到与之同名的文件,但 +<
不能。
输出:
- **Mode = “+ >>” **
这是Read-Append模式。这可以用来从一个文件中读取,也可以用来追加到一个文件中。如果没有找到一个新的文件,将创建一个同名的文件。
输出:
重定向输出
输出可以通过选择功能从控制台重定向到一个文件中。
语法: select FileHandle;
参数:
- FileHandle – 要选择的文件的FileHandle。
步骤:
- 打开一个要写的FileHandle,即”>”、”>”、”+<“、”+>”或 “+>>”。
- 使用select函数选择FileHandle。
现在,任何使用打印函数打印的东西都会被重定向到该文件。
例子
控制台中的输出:
Hello.txt的内容:
原始文件:
更新文件: