Perl 将文件(句柄)的内容写入其他文件句柄

Perl 将文件(句柄)的内容写入其他文件句柄,perl,Perl,如何将一个文件/文件句柄的内容写入另一个文件/文件句柄?我知道我可以打开文件,将输入输出到变量中,而不是将变量打印到第二个文件句柄中,但我想知道是否有更好的/库解决方案可用,它可能也可以处理大文件(并且不会将整个文件加载到内存中)。我很确定这一个不会将整个文件加载到内存中: open F, "file1" or die "Error reading file1"; open G, ">file2" or die "Error writing file2"; print G while &

如何将一个文件/文件句柄的内容写入另一个文件/文件句柄?我知道我可以打开文件,将输入输出到变量中,而不是将变量打印到第二个文件句柄中,但我想知道是否有更好的/库解决方案可用,它可能也可以处理大文件(并且不会将整个文件加载到内存中)。

我很确定这一个不会将整个文件加载到内存中:

open F, "file1" or die "Error reading file1";
open G, ">file2" or die "Error writing file2";

print G while <F>;

close F;
close G;
但请不要像上面那样。如果要保留它们,请将其用作别名-将“copy”调用为“cp”,使其行为类似于shell命令“cp”:

use File::Copy "cp"

cp("file1", "file2") or die "Error: $!";
最后,尽管这不是一个非常可移植的解决方案,但您始终可以调用shell:

`cp file1 file2`;

我很确定这个不会将整个文件加载到内存中:

open F, "file1" or die "Error reading file1";
open G, ">file2" or die "Error writing file2";

print G while <F>;

close F;
close G;
但请不要像上面那样。如果要保留它们,请将其用作别名-将“copy”调用为“cp”,使其行为类似于shell命令“cp”:

use File::Copy "cp"

cp("file1", "file2") or die "Error: $!";
最后,尽管这不是一个非常可移植的解决方案,但您始终可以调用shell:

`cp file1 file2`;

File::Copy不仅支持按名称进行复制,还支持按名称进行复制:


其中,FILE\u IN和FILE\u OUT是为读写而打开的文件句柄。

FILE::Copy不仅支持按名称复制,还支持按名称复制:

其中FILE_IN和FILE_OUT是为读写而打开的文件句柄