2010-07-14 6 views
-4

Следующий скрипт печатает некоторые символы.perl + печать в файл

как печатать символы в файл (например,/вар/TMP/файл)

Яэль

#!/usr/bin/perl 


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

foreach (@myNames) { 

print "$_\n"; 

} 
+2

Кажется, что вы делаете гораздо более продвинутый Perl, чем это - зачем задавать такой вопрос? Ваши другие вопросы, в частности ваши XML-вопросы, по-видимому, потребуют лучшего понимания Perl. – MJB

ответ

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

+0

Одной из причин может быть целевой файл вывода, который может быть заблокирован каким-либо другим процессом. В таких случаях программа заканчивается этим сообщением об ошибке – Vijey

+0

@yael: при возникновении ошибки. – ysth

2

При запуске сценария, вы можете просто перенаправить выход к файл:

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

, кто когда-либо предлагал отрицательный голос здесь, пожалуйста, объясните! – Erik

+0

это был не я, но, вероятно, потому, что вы использовали дескриптор дескриптора, а не лексический, и вы не используете три аргумента open. 'open my $ file, '>', '/ var/tmp/file' или die 'файл с открытием ошибки: $!"; ' –

+0

ну, пока этот пример все еще находится в официальной perldoc (документация Perl 5 версии 12.1 : http://perldoc.perl.org/), нет ничего плохого в этом, я думаю. Итак, кто когда-либо играет с отрицательными голосами, кажется, все-таки знает, что не может прочитать официальную документацию. – Erik

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"; 
    } 
}