「ab」、「ef」、「ab ef」などを含むキーワードファイルがあるとしましょう(実際には、さらに1000のエントリがあります)。各キーワードがどのページで発生しているかを調べたい
page 0
ab
gg
^L
page 1
ab ef
^L
page 2
Ab
ef
[another thousand pages, 2 million words, each ^L separated]
戻りたい
ab => [ 0,1,2 ]
ef => [ 1,2 ]
ab ef => [ 1 ]
私はこれを非常に非効率的に行う方法を知っています。ファイルを長い文字列に丸呑みします。小文字にします。ページに分割します。ページごとに、各 (小文字の) キーワード エントリを正規表現して、ページに表示されるかどうかを確認します。もしそうなら、私のキーワードをキーとして含むハッシュの最後にページ番号を追加してください。難しいことではありませんが、非常に非効率的です。私のアルゴリズムは、洗練された perl アプローチというよりは、C アプローチのように見えます。
悲しいかな、私はより良い代替案を考えることはできません. 最初にメインファイルをハッシュに読み込むことさえできません。スペースで区切られた複数の単語のキーワードの可能性により、この洗練されていない悪いロジックが作成されるためです。
おそらくperlはこれには間違ったツールですか?!