使用Perl复制文件中的行

phi*_*ogg 1 perl

我觉得这很容易,但我很难过.我想将每行放在一个文件中并复制八次.这是我正在使用的代码:

#!/usr/bin/perl
use warnings;
use strict;
use diagnostics;


my $inputFile = "Providers list.csv";
my $outputFile = "Providers list2.csv";
open my $FHI, '<', $inputFile || die "cannot open input file";
open my $FHO, '>', $outputFile || die "cannot open output file";

while (<$FHI>) {
    for ( my $i = 0; $i < 8; $i++) {
    print $FHO "$_\r";
}
}

close $inputFile;
close $outputFile;
Run Code Online (Sandbox Code Playgroud)

发生了什么,而不是每一行重复8次,重复整个文件内容八次.换句话说,而不是这样:

Line1
Line1
Line1
Line1
Line1
Line1
Line1
Line1
Run Code Online (Sandbox Code Playgroud)

我明白了:

Line1
Line2
Line3
Line1
Line2
Line3
Run Code Online (Sandbox Code Playgroud)

等等,八次.我不明白为什么它不是单独处理每一行.

TIA!

And*_*ndy 6

如果源文件也有Mac行结尾,请尝试$/ = "\r"在脚本开头设置输入记录分隔符.如果这是问题,那么\r只要您没有chomp编辑数据,就不需要打印输出.