(Search/Dict.pm のコードによれば、複数マッチの場合、辞書順的に先頭のものが返される仕様なので、複数結果のときの取り出し方はこれで良いはず。)#!/usr/bin/perl use strict; use warnings; use Search::Dict; my ($key, $fn) = @ARGV; open(my $fh, "<", $fn) or die; look $fh, $key; my $line = readline($fh); while ($line =~ /^\Q$key\E/) { print $line; $line = readline($fh); } close($fh);
12345 456789 abc abx abyz あい あいあい あいたた わお わおん
% ./searchdict.pl 'ab' sample.txt abc abx abyz % ./searchdict.pl 'あい' sample.txt あい あいあい あいたた
% look 'ab' sample.txt abc abx abyz % look 'あい' sample.txt あい あいあい あいたた