【发布时间】:2011-04-08 16:03:32
【问题描述】:
我需要 Windows 上的 Perl 脚本,它从文件中删除换行符并将所有行合并为一行,然后将另一个文件写入 Windows 系统上的 %temp% 目录。例如,这个脚本是删除换行符并创建一个单行并写入%TEMP%中的另一个文件。
我有删除换行符但输出到 STDOUT 的脚本。我无法在 %TEMP% 中创建文件并将输出重定向到该文件。
以下是我的脚本不起作用:
my $inFile = $ARGV[0];
$ENV{'TEMP'} = 'C:\\TEMP';
if ($inFile eq "") {
print "Input file is missing\n";
print "perl file_into_one_line.pl <input fil>\n";
exit 0;
}
open(INFILE, "< $inFile") || die "$0, FEJL: can't open $inFile: $!";
foreach (<INFILE>) {
chomp;
if (eof()) { # check for end of last file
print "$_\n";
} else {
open FILE, ">$ENV{'TEMP'}//temp//tst.txt" or die;
print FILE "${_}$separator";
}
}
close(INFILE);
【问题讨论】:
-
请附上您目前编写的脚本。
-
你可以像这样运行你的脚本:
perl myscript.pl >%TEMP%/file.txt -
inFile可以是undef,所以检查!defined $inFile || $inFile eq ""。
标签: perl