
-------------
---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ランキング
-
VBAのautofilter、criteriaの配...
-
チェックボックスのperlでの値...
-
DBIを使ってSelect文 複数のカ...
-
バイナリデータの検索(VB.NET2008)
-
do-while文での無限ループ?
-
Dim flag(4) as boolean で配列...
-
Powershell $変数 = @()の空配...
-
perlとhtml
-
VBA 二次元配列の1つ目を増...
-
MATLABの関数で配列の要素を返...
-
UWSCの終了の仕方
-
Escキーを押すと、中断する時と...
-
VBAでの一時停止と再開の方法
-
Do whileでExitせず、ループの...
-
vb.netです。2次元配列の要素を...
-
VBのReturnの使い方
-
UWSCに制限時間を付けたいです
-
*(アスタリスク)の意味
-
範囲指定したセルを1つずつ飛...
-
VBAで3秒だけ時間を止めたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAのautofilter、criteriaの配...
-
文字の整列(printf)
-
クラスに配列を渡す方法
-
Dim flag(4) as boolean で配列...
-
エクセルVBAでTransposeの不思議
-
二次元配列のインデックスについて
-
Excel VBA ユーザーフォームの...
-
Strawberry Perl for Windows ...
-
バイナリデータの操作
-
perlで配列の要素が空なのを知...
-
perlの配列追加について
-
perl 配列の要素数について
-
グループ分けの仕方について
-
最後のフィールドを抜き出したい。
-
リストボックスに縦スクロール...
-
チェックボックスのperlでの値...
-
二つの配列から連想配列を作る方法
-
変則的なスタック配列を使う
-
二次元配列における要素数のは...
-
配列を使わずに、数字(連番)...
おすすめ情報