私はオンラインで検索して検索しましたが、私は何も動作していないようです。私はこれが愚かに簡単な質問であることを知っていますが、私は本当に立ち往生しています...CSVファイルのデータをPerlの配列に追加するにはどうすればよいですか?
私はファイルのディレクトリを持っていて、CSVファイルにディレクトリの名前を保存しました。単にデータなどの1列で構成されています:
100
101
102
103...
私は(ちょうどその関連する場合)ファイルを作成するには、次のコードを使用:
今open (my $fileh, '>', '/Users/Shared/serials.csv') or die "Could not open file!";
print $fileh `ls -1 $path`;
close $fileh;
print "Saved Serials!";
私が望むすべてを読み込むことですファイル内のデータを配列に格納し、各値をループしてタスクを完了します。前述したように、私が代わりに自動的に書きたい、
@ser_list = (100,101,102,103,...);
:私は
は現在、私は次のように、配列にコード内で手動で番号を入力しています...これを行う方法を見つけ出すことはできませんls
コマンドラインクエリを使用してファイル名(数値)を取得し、そこからスクリプトに読み戻します。 これを行う方法があれば、別の値のファイルを作る必要はありません。
この例では、配列は@ser_listと呼ばれています。そこから、配列から次の$ ser_numを読み込み、ループ内でそれを処理しています。
foreach $ser_num (@ser_list) {....}
ご協力いただきありがとうございます。
デフォルトの 'glob()'は 'csh'に基づいており、ファイル名にスペースを入れません。 'glob()'関数を 'use File :: Glob qw(:bsd_glob);に置き換えてください。 – shawnhcorey
@shawnhcorey:引数にスペースを入れません。空白を含むファイル名は大丈夫です。引数を区切りにしたくない場合は、引数のスペースをバックスラッシュする必要があります。 – choroba
あなたは正しいです。それは、最も難しい原因となっている姓のスペースです。ディレクトリツリーを歩き回っているときは、ディレクトリ名のスペースをエスケープする必要があります。あるいは ':bsd_glob'を使って心配する必要はありません。 – shawnhcorey