
-------------
---aaa---
あ
い
う
---bbb---
か
き
く
--------------
上記のようなテキストファイルがあります。
この場合、
@aaa,@bbb (変数名は事前に分かっています)
にそれぞれ配列に入れたい
どのようにすると、スマートにそれぞれ配列に入れることができますか?
一応、自分でもやってみて動きはするのですが、仮に---ccc---のブロックができると対処できません。
open(F,"<$test");
my @f = <F>;
close F;
shift @f;
chomp @f;
for(@f){
if($_ =~ m/--bbb--/){last;}
if(length($_) <= 4){last;}
push(@aaa,$_);
}
@f = reverse @f;
for(@f){
if($_ =~ m/--bbb--/ ){last;}
if(length($_) <= 4){next;}
push(@bbb,$_);
}
No.2ベストアンサー
- 回答日時:
No1です。
連投すみません。
No1は、破棄してください。
open(F,"<$test");
my @f = <F>;
close F;
for(@f){
chomp($_);
if ($_ =~ m/---([a-z]{3})---/){
$var = $1;
$str = '@' . $var . '= [];';
eval($str);
next;
}
if(length($_) <= 4){next;}
$str = 'push(@' . $var . ',\'' . $_ . '\');';
#print($str);
eval($str);
}
print @aaa,"\n";
print @bbb,"\n";
再度、回答いただきありがとうございます。
コンパイラーが通りました。
evalを使ってする方法があるのですね!
大変勉強になりました!
No.1
- 回答日時:
eval をつかってみました。
最後の2行の
print @aaa,"\n";
print @bbb,"\n";
は確認用です。
ーーーーーーーーーーーーーーーーーーーーー
open(F,"<$test");
my @f = <F>;
close F;
for(@f){
chomp($_);
if ($_ =~ m/---([a-z]{3})---/){
$var = $1;
$str = '@' . $var . '= [];';
eval($str);
next;
}
if(length($_) <= 4){next;}
$str = 'push(@' . $var . ',"' . $_ . '");';
eval($str);
}
print @aaa,"\n";
print @bbb,"\n";
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
チェックボックスのperlでの値...
-
VBAのautofilter、criteriaの配...
-
Dim flag(4) as boolean で配列...
-
一致する要素が格納されている...
-
Powershell $変数 = @()の空配...
-
perlとhtml
-
perlで2次元配列をサブルーチ...
-
範囲指定したセルを1つずつ飛...
-
エクセルの当番表を作っていま...
-
画面を強制的に再描画させる方法
-
Do whileでExitせず、ループの...
-
Escキーを押すと、中断する時と...
-
VBのReturnの使い方
-
UWSCの終了の仕方
-
VBAで3秒だけ時間を止めたい
-
アセンブラによるウェイト(WAIT...
-
ネットワークループとルーティ...
-
VBA横データを縦にしたいです
-
DoEventsが必要な理由について
-
GIFアニメをループさせたくない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAのautofilter、criteriaの配...
-
文字の整列(printf)
-
クラスに配列を渡す方法
-
Dim flag(4) as boolean で配列...
-
エクセルVBAでTransposeの不思議
-
二次元配列のインデックスについて
-
Excel VBA ユーザーフォームの...
-
Strawberry Perl for Windows ...
-
バイナリデータの操作
-
perlで配列の要素が空なのを知...
-
perlの配列追加について
-
perl 配列の要素数について
-
グループ分けの仕方について
-
最後のフィールドを抜き出したい。
-
リストボックスに縦スクロール...
-
チェックボックスのperlでの値...
-
二つの配列から連想配列を作る方法
-
変則的なスタック配列を使う
-
二次元配列における要素数のは...
-
配列を使わずに、数字(連番)...
おすすめ情報