2015-04-23 72 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

相關問題