Perlについての質問箱 54目
■ このスレッドは過去ログ倉庫に格納されています
0700686
2012/08/25(土) 18:21:07.19なりすましとか最低すぎ。質問するからって遜ってやってんだよゴミクズ
threads::shared、Thread::Queueみたいな共有・排他制御がスカラ変数以外にも適応できないかと
スレッド間でのハッシュの共有・排他制御は可能か?っていうモジュールの仕様、テクニック面での質問だったのに
>>692は答えられないからって「理由は省略」とか = コード読めないし、そもそも知らないってこと? 無能きわまりないですね、ふぁっく。
>>689はアイデア出してもらってありがとう。seek()で読み取り範囲を分配させるわけですかね。出力した結果のキー部分が重複してると厄介そう
for my $input_key(nsort keys %{$inputhash{$inputfilename}}){ #このinput_keyが100万個、このfor文をマルチスレッドさせたい
my @key1 = ()
#中略:正規表現でキーワード配列と一致したものを @key1にpush
my @key2 = split(/,/,$inputhash{$inputfilename}{$input_key}{$input_header[$cols_keyword]});
for(my $j=0;$j < scalar(@key2);$j++){
for(my $i=0;$i < scalar(@key1);$i++){ #key1をカテゴリとして入力ハッシュを分配
if(exists $outerhash{$key1[$i]}{$key2[$j]}){ #すでに出力ハッシュにキーが存在していれば
my @tmp = @{$outputhash{$key1[$i]}{$key2[$j]}{$output_header[$g]}}; #既存値を退避
push @tmp,$inputhash{$inputfilename}{$key1}{$input_header[$g]};
@{$outerhash{$key1}{$key2[$i]}{$outputheaders[$g]}} = @tmp_probeidlist; #ハッシュの値を上書き
}
else{#キーが存在しない時
my $k=0;
@{$outputhash{$key1[$i]}{$key2[$j]}{$output_header[$k]}} = $inputrecs{$inputfilename}{$key1}{$headers_input[$列番号]};
$k++;
#以下順番に@{$outputhash{$key1[$i]}{$key2[$j]}{$output_header[$k]}}に%inputhashの任意の値を格納
}
}
}
}
■ このスレッドは過去ログ倉庫に格納されています