• ベストアンサー

Perlについて教えてください!

入力ファイルには AAA␣aaa␣AaAa 改行 BBB␣bAb␣BbBb 改行 CCC␣Abc␣CcCc 改行 DDD␣.... というように文字列がスペースおきに3つ記載されていて最後は改行されている文が複数行ある場合、 文の2つ目のaaa、bAb、Abc…のみを配列に格納したい場合のプログラムを教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • kuroizell
  • ベストアンサー率55% (95/170)
回答No.1

␣はスペースということですね? #!/usr/bin/env perl my @array1; my @array2; while(<DATA>) {   # WAY1: use regexp   my ($str) = $_ =~ /^.+?\s(.+?)\s.+$/msx;   push(@array1, $str);      # WAY2: use split   my @columns = split(' ', $_);   push(@array2, $columns[1]); } print "$_\n" foreach @array1; print "$_\n" foreach @array2; __DATA__ AAA aaa AaAa BBB bAb BbBb CCC Abc CcCc

wiredrikou
質問者

お礼

丁寧に回答して頂きありがとうございました。

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

open my $fh, '<', 'inputfile.txt'; my @data = map { (split)[1] } <$fh>; close $fh;

関連するQ&A