2012-01-23 7 views

答えて

8

非常にシンプルな(これは、配列が明示的にあなたの質問がなく、かなりない配列として指定されていることを、当然のことながら、想定しています)を明確にする:

#!/usr/bin/perl -w 
use strict; 

my @a = (1, 2, 3); # The array we want to save 

# Open a file named "output.txt"; die if there's an error 
open my $fh, '>', "output.txt" or die "Cannot open output.txt: $!"; 

# Loop over the array 
foreach (@a) 
{ 
    print $fh "$_\n"; # Print each entry in our array to the file 
} 
close $fh; # Not necessary, but nice to do 

上記のスクリプトは、 "output.txtと" に次のように記述します:

1 
2 
3 
+4

今では 'オープン' の3引数形式を使用する必要があります。また、ファイルハンドルを字句に入れる方がよいでしょう。 "私の$ファイル '>'、 'output.txt'を開きます..." – zgpmax

+0

@hochgurgler +1理由はここにあります:http://stackoverflow.com/questions/1479741/why-is-three-argument -open-calls-with-lexical-filehandles-a-perl-best-practice – dgw

+0

@hochgurgler情報をありがとう。私は3つの引数の形式が存在することは知らなかったが、それがベストプラクティスであったということになるだろう! –

4

あなたがforeachループをしたくない場合は、あなたがこれを行うことができます:

print $fh join ("\n", @a); 
+3

あなたの 'map'は冗長です。 – Sobrique

+0

@Sobrique:確かに、 'join'組み込み関数はすでに 'loopy'なので私はそれを削除し、結合の引数の丸括弧を捨てました(レビュー待ち)。 –

関連する問題