入力ファイルがあります
入力ファイル.txt
name: George
age: 5
nature: curious
likes: banana
これを私はフォーム レイアウトと呼んでいます。これをテーブル レイアウトの CSV に変換しようとしています。例えば:
name,age,nature,likes
George,5,curious,banana
そのため、ファイルを読み取り、「: と \n」で分割し、値をハッシュに配置します。次に、そのハッシュを配列にプッシュして、後で取り出せるようにします。これが私がこれまでに行ったことです。
#!/usr/bin/perl
use strict;
open (MYFILE, 'inputfile.txt');
my @records;
while (<MYFILE>) {
chomp;
my %values = split(/[:\n]/,$_);
push @records,%values;
}
close (MYFILE);
これによって、私@records={[name=George],[age=5],[nature=curious],[likes=banana]}
は起こっただろうと思います。
では、配列から各ハッシュを取得するにはどうすればよい@records
でしょうか。次のようなものを試すと:
foreach my $record(@records){
my %record = $record;
for my $key(keys %record){
print "key : $key\n";
}
}
予想とは異なり(キーのみ)、すべてのトークンを次々に出力します。