2010-07-14 148 views
-4

以下腳本打印一些字符。perl +打印到文件

如何打印字符文件(例如/ var/tmp中/文件)

耶爾

#!/usr/bin/perl 


@myNames = ('one', 'two', 'three' , 'A' , 'B' , 'C' , 'D' , 'E'); 

foreach (@myNames) { 

print "$_\n"; 

} 
+2

看起來你正在做比這更高級的Perl - 爲什麼問這樣一個問題?你的其他問題,特別是你的XML問題,似乎需要更好的Perl理解這一點。 – MJB 2010-07-14 16:15:32

回答

0
#!/usr/bin/perl 


@myNames = ('one', 'two', 'three' , 'A' , 'B' , 'C' , 'D' , 'E'); 

open(OUT,">","/var/tmp/file") or die "Could not open the output file: $!"; 

foreach (@myNames) { 

print OUT "$_\n"; 

} 

close(OUT); 
+0

THX 在這種情況下,我們可以得到「無法打開輸出文件」 Yael – yael 2010-07-14 16:27:16

+0

其中一個原因可能是目標輸出文件可能被某個其他進程鎖定。在這種情況下,程序終止並顯示此錯誤消息 – Vijey 2010-07-14 16:35:12

+0

@yael:出現錯誤時。 – ysth 2010-07-14 16:35:52

2

當您運行腳本,你可以簡單地將輸出重定向到一個文件:

$ ./myscript.pl > /var/tmp/file 
0
open(FILE, ">/var/tmp/file") || die "File not found"; 
print FILE @myNames; 
close(FILE); 
+0

誰曾在這裏設置負面投票 - 請解釋! – Erik 2010-07-14 19:04:51

+0

它不是我,但可能是因爲你使用了一個純文本句柄而不是詞法,而且你沒有使用open這三個參數。 '打開我的$文件,'>','/ var/tmp/file'或者死掉'error opening file:$!';' – 2010-07-14 21:33:25

+0

好吧,只要這個例子仍然在官方的perldoc(Perl 5 version 12.1 documentation :http://perldoc.perl.org/),我認爲它沒有任何問題。因此,誰玩弄反對票看起來都是一知半解,無法閱讀官方文件。 – Erik 2010-07-15 07:04:26

0
#!/usr/bin/env perl 
use strict; 
use warnings FATAL => 'all'; 
use autodie qw(:all); 

my @names = qw(one two three A B C D E); 

{ 
    open my $fh, '>', '/var/tmp/file'; 
    foreach (@names) { 
     print {$fh} "$_\n"; 
    } 
}