• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:二次元配列への格納)

二次元配列への格納|ファイル名:log.datのデータを二次元配列に変換する方法

このQ&Aのポイント
  • log.datというファイルに格納されているデータを読み込んで、二次元配列に変換する方法を解説します。
  • データの読み込み後、空白や改行、二重引用符を取り除き、パイプ記号で区切られた要素を二次元配列に格納します。
  • これにより、log.datのデータが二次元配列​​として取得できます。

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

  • ベストアンサー
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

split の結果を配列のリファレンスにしてやって、 @secondにpushすればいいです。 こんな感じで。 ところで改行は \r\n ではなくて \n\rなんですか? use strict; use warnings; use Data::Dumper; my @second; open my $fh, '<', 'log.dat' or die "log.dat",": $!"; foreach my $line (<$fh>) { #chomp $line; $line =~ tr /" \n\r//d; push @second, [split /[|]/, $line]; } close $fh; print Dumper @second;

myfrend
質問者

お礼

どうも回答ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • guci-ok
  • ベストアンサー率33% (49/146)
回答No.2

No.1でいいんですが、 File::Slurpをつかうとプログラムがすっきりします。 それと、Data::Dumpのほうか表示がすっきりしています。 #!Perl use strict; use File::Slurp; use Data::Dump qw(dump); my @log = read_file("log.dat"); my @second; for (@log) { chomp; my @data = split /\|/; s/(^"|"$)//g for @data; push @second => \@data; } print dump(\@second); __END__

myfrend
質問者

お礼

ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A