2015-04-23 71 views
0

我对Perl及其语法很陌生。我已经做了一些关于从一个文件读取并写入另一个文件的研究。我写了一小段代码,似乎没有给我任何错误,但它也不写入文件。一些帮助将不胜感激。
Perl从一个文件中读取内容到Windows上的另一个文件

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

my $defaultfile = 'C:\\Glenn Scott C\\AUTO IOX\\IOMETER FILES\\test.txt'; 
my $mainfile = 'C:\\Glenn Scott C\\AUTO IOX\\IOMETER FILES\\IOMETERFILECREATOR.txt'; 

open FILE, $defaultfile; 
open FILE2, $mainfile; 
while (my $line = <FILE>) 
{ 
    print FILE2($line); 
} 
close FILE; 
close FILE2; 

回答

0

关闭,但并不完全。

  • 打开最好用3个参数完成。 open (my $default_fh, '<', $defaultfile) or die $!;

  • print到文件句柄不起作用。它的print {$main_fh} $line;

  • 你应该测试open的成功。 or die $!就足够了。

那么这将是你所需要的:

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

my $defaultfile = 'C:\\Glenn Scott C\\AUTO IOX\\IOMETER FILES\\test.txt'; 
my $mainfile = 
    'C:\\Glenn Scott C\\AUTO IOX\\IOMETER FILES\\IOMETERFILECREATOR.txt'; 

open(my $default_fh, "<", $defaultfile) or die $!; 
open(my $main_fh, ">", $mainfile) or die $!; 
while (my $line = <$default_fh>) { 
    print {$main_fh} $line; 
} 
close $default_fh; 
close $main_fh; 
+0

啊非常感谢您的帮助!语法真的让我在那里 – bladexeon

+0

有什么让我惊讶的是,你没有得到任何错误。我原以为印刷说明会出错。它试图调用一个不存在的名为“FILE2”的子程序。我得到'未定义的子程序&main :: FILE2调用'; – Sobrique

+0

请问使用'while'或使用'foreach'循环文件句柄有什么区别? – thonnor

相关问题