2017-09-15 111 views
1

我试图将文件的行复制到另一个文件中。我想为输入和输出文件提供文件名。我试着不要求任何输入参数做,它工作得很好,但用文件名作为输入它failed.Here是我的代码:Perl:无法打开文件名为输入的文件

use strict; 
use warnings; 

#names of file to be input and output 
my $inputfile = <STDIN>; 
my $outputfile = <STDIN>; 

open(INPUT,'<', $inputfile) 
or die "Could not open file '$inputfile' $!"; 

open(OUTPUT, '>', $outputfile) 
or die "Could not open file '$outputfile' $!"; 

while (<INPUT>) { 
    print OUTPUT; 
} 

close INPUT; 
close OUTPUT; 
print "done\n"; 

回答

1

chomp您的输入变量来去除新行:

use strict; 
use warnings; 

#names of file to be input and output 
my $inputfile = <STDIN>; 
my $outputfile = <STDIN>; 

chomp $inputfile; 
chomp $outputfile; 

open(INPUT,'<', $inputfile) 
or die "Could not open file '$inputfile' $!"; 

open(OUTPUT, '>', $outputfile) 
or die "Could not open file '$outputfile' $!"; 

while (<INPUT>) { 
    print OUTPUT; 
} 

close INPUT; 
close OUTPUT; 
print "done\n";