珀尔 |啜饮模块
File::Slurp模块用于读取文件的内容并将其存储到字符串中。这是读取/写入/修改完整文件的一种简单有效的方法。就像它的名字一样,它允许您通过一个简单的调用来读取或写入整个文件。
通过将此模块导入您的程序,用户可以实现一些函数,如 read_file、read_text、write_file 等,以从文件中读取和写入内容。
安装 File::Slurp 模块:
要使用这个模块,首先需要将它添加到您的 Perl 语言包中。这可以通过在 Perl 终端中使用以下命令并安装所需的模块来完成。
第 1 步:打开终端并运行以下命令:
perl -MCPAN -e shell
进入 cpan shell 后,按照下一步安装 File::Slurp 模块。
第 2 步:运行以下命令安装模块:
install File::Slurp
这将安装 File::Slurp 模块。
第 3 步:键入并运行“q”命令以退出cpan>提示符。
Slurp 中的 read_file函数:
File::Slurp 的 read_file函数读取具有文件名的文件的全部内容并将其作为字符串返回。但是,不鼓励使用 File::Slurp,因为它几乎没有可能在编译期间引起问题的编码层问题。 File::Slurper 旨在成为避免上述问题的替代方案。
Syntax:
use File::Slurp;
my $text = read_file($filename);
Return: It returns a string.
Slurp 中的 read_text函数:
File::Slurper 的 read_text函数接受一个可选的编码参数(如果有的话),并且可以在您请求时自动解码 CRLF 行尾(对于 Windows 文件)。
Syntax:
use File::Slurper;
my $content = read_text($filename);
Return: It returns a string.
笔记:
CRLF 行尾用于标记文本文件中的换行符(Windows 换行符类型)。
Slurp 中的 write_file函数:
File::Slurp 的 write_file函数用于使用 File::Slurp 模块一次性写入所有文件。它借助包含 read_file函数读取的另一个文件的内容的标量变量写入文件。
Syntax:
use File::Slurp;
write_file($filename, $content);
Returns: It doesn’t return any value, just writes the content to the file.
Example1:使用标量存储文件内容
PERL
# Perl code to illustrate the slurp function
use File::Slurp;
# read the whole file into a scalar
my $content = read_file('C:\Users\GeeksForGeeks\GFG_Slurp.txt');
# write out a whole file from a scalar
write_file('C:\Users\GeeksForGeeks\Copyof_GFG_Slurp.txt', $content);
PERL
# perl code to illustrate the slurp function
use File::Slurp;
# read the whole file into a scalar
my @lines = read_file('C:\Users\GeeksForGeeks\GFG_Slurp2.txt');
# write out a whole file from a scalar
write_file('C:\Users\GeeksForGeeks\Copyof_GFG_Slurp2.txt', @lines);
Perl
# Perl code to illustrate the slurp function
use strict;
use warnings;
use File::Slurp;
# calling user defined function
get_a_string();
sub get_a_string
{
# read entire file into a scalar
my $gfg_str = read_file('C:\Users\GeeksForGeeks\GFG_User_Slurp.txt');
# write entire file from a scalar
write_file('C:\Users\GeeksForGeeks\Copyof_GFG_User_Slurp.txt', $gfg_str);
}
输出 :
解释:
在上面的 Perl 代码中,最初,我们使用 slurp函数读取一个名为GFG_Slurp.txt的文件,其中包含一些文本行作为一个名为$content的标量变量的输入,然后将该文件的内容写入另一个文件Copyof_GFG_Slurp.txt作为单个字符串。
Example2:使用数组存储文件内容
PERL
# perl code to illustrate the slurp function
use File::Slurp;
# read the whole file into a scalar
my @lines = read_file('C:\Users\GeeksForGeeks\GFG_Slurp2.txt');
# write out a whole file from a scalar
write_file('C:\Users\GeeksForGeeks\Copyof_GFG_Slurp2.txt', @lines);
输出 :
解释:
在上面的 Perl 代码中,最初,我们使用 slurp函数读取名为GFG_Slurp2.txt的文件,该文件包含一个文本行数组作为一个名为@lines的数组变量的输入,然后将整个文件的内容写入一个文件将Copyof_GFG_Slurp2.txt命名为单个字符串。
示例 3:创建一个使用 slurp 方法的函数
Perl
# Perl code to illustrate the slurp function
use strict;
use warnings;
use File::Slurp;
# calling user defined function
get_a_string();
sub get_a_string
{
# read entire file into a scalar
my $gfg_str = read_file('C:\Users\GeeksForGeeks\GFG_User_Slurp.txt');
# write entire file from a scalar
write_file('C:\Users\GeeksForGeeks\Copyof_GFG_User_Slurp.txt', $gfg_str);
}
输出 :
解释:
在上面的 Perl 代码中,strict 和 warnings 允许用户更自由地输入代码并更快地捕获错误,例如变量名中的拼写错误等。我们调用了一个名为 get_a_string 的用户定义函数,它依次执行 slurp函数,即将包含一些文本行的文件作为输入读取到名为 gfg_str 的变量中,然后将整个文件的内容作为单个字符串写入文件。