ファイルからパターンをインポートする

ファイルからパターンをインポートする

次の形式のテキストファイルがあります。毎回1つのインスタンス(行ABC〜)を選択し、その行と列を処理したいと思います。MNR

ABC 12 20150911 121 005 001 
BBC AUX BUX 34 70U 1 ? ? ? ? ? ? ?
AXM B 300
HDG D 34 ? ? ? ? ? ? 
XLG H 43 1 003 ? ? ? ? ?
MNR R 05 0 ? 5 ? ? ? ?
ABC 10 20150910 121 005 001 
BBC AUX BUX 34 70U 1 ? ? ? ? ? ? ?
AXM B 500
HDG D 30 ? ? ? ? ? ? 
XLG H 83 1 003 09 ? ? ? ?
MNR R 09 0 ? 5 ? ? ? ?
ABC 12 20150911 121 005 001 
BBC AUX BUX 34 70U 1 ? ? ? ? ? ? ?
AXM B 380
HDG D 34 43 ? ? ? ? ? 
XLG H 22 1 003 ? ? ? ? ?
MNR R 05 0 1 5 ? ? ? ?

ベストアンサー1

もちろん、ハッシュ配列に解析することはできますが、その後はどうなりますか?

#!/usr/bin/env perl
use strict;
use warnings;

my @abcs;

while (<>) {
  my ($name, @values) = split ' ';
  if (m/^ABC\s/) {
    push @abcs, { $name => \@values }
  } else {
    $abcs[-1]->{$name} = \@values;
  }
}

use Data::Dumper; warn Dumper \@abcs;
print $abcs[0]{BBC}[3], "\n";

おすすめ記事