2010-07-14 203 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"; 
    } 
}