Perl - 将输出打印到不同目录中的文件

标签 perl file path directory file-io

早上好!

如果此内容之前已发布过,我很抱歉 - 我找不到它。我只需要一点点指向正确的方向,这是我的作业,我觉得它快完成了。我想要做的是从与脚本运行位置不同的文件夹中的文件中获取数据,在 Perl 中处理数据,然后将输出打印到另一个目录。现在我已经完成了这两部分,但我失败的是 Perl 找不到我想要保存文件的路径。它只是说“不存在具有该名称的文件或目录”,但确实存在!这是脚本的一部分:

my @files = <$ENV{HOME}/Docs/unprocessed/*.txt>;
my $path = "$ENV{HOME}/Docs/results";

<looping through @files, processing each file in the unprocessed folder...>

open (OUTFILE, $path . '>$file') or die $!;
print OUTFILE ""; # "" Is really the finished calculations from the loop, not important here.
close FILE;
close OUTFILE;

我敢打赌这是一些愚蠢的事情......

最佳答案

因为您将“写入”标记 > 与文件名混合在一起。这:

open (OUTFILE, $path . '>$file')

应该是:

open (OUTFILE, ">$path/$file")

您可能还需要从文件名中删除 .../Docs/unprocessed/ 前缀:

use File::Basename;

open (OUTFILE, ">$path/" . basename($file))

关于Perl - 将输出打印到不同目录中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12813873/

相关文章:

java - 如果某个位置有空格,请在文件中添加连字符

bash - 什么是无效的间接扩展,为什么它会阻止我安装这个程序?

java - 检查两个 Path2D 之间的交集

perl - 使用 Perl 从文本中提取多个项目

perl - 如何根据年龄删除 Perl 散列或数组项?

perl - 当 perl 中的键相同时连接哈希值

perl - 如何在 Perl 中更改、删除或插入文件中的一行,或附加到文件的开头?

python - 如何使用 Python 脚本从 Drive API 下载文件

python - 比较两个文件报告python中的差异

java - 去掉文件路径(home/user/file.txt = file.txt)?