電子書籍の厳選無料作品が豊富!

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

A 回答 (2件)

␣はスペースということですね?



#!/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
    • good
    • 0
この回答へのお礼

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

お礼日時:2012/05/24 04:25

open my $fh, '<', 'inputfile.txt';


my @data = map { (split)[1] } <$fh>;
close $fh;
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!