Perl 小品集 ─ ej
#!/usr/bin/perl
# ej.pl
# 「英辞郎」検索
#
# 準備:「英辞郎」のテキスト形式の辞書を EUC に変換し
# eiwa.dic、waei.dic を作っておく
# 辞書ファイルディレクトリーと一時ファイルを指定
$dicdir = "/home/penguin/ej";
$temp = "$dicdir/temp.txt";
# 辞書ファイルの選択
($dic) = @ARGV;
# 入力がなければ、デフォルトを選ぶ
if ($dic eq '') {
$eiwa = "$dicdir/eiwa.dic";
$waei = "$dicdir/waei.dic";
}
# 指定した辞書を選ぶ
else {
$eiwa = "$dicdir/$dic";
$waei = "$dicdir/$dic";
}
# 単語の入力
while (1) {
print "WORD: ";
$word = <STDIN>;
chomp $word;
# 入力がなければ終了
if ($word eq '') {
exit 0;
}
# 入力を繰り返す
else {
&search_dic ($word);
}
}
# 検索と表示
sub search_dic
{
local ($word) = @_;
# 検索モード
# 単語の最後に ! をつけた場合
if ($word =~ /!$/) {
$word =~ s/!$//;
print "Searching ...\n";
system "grep '$word' $eiwa > $temp";
}
# 英和辞典
# 単語が英数字だけの場合
elsif ($word =~ /^[0-9a-zA-Z]/) {
# look のオプション
# -d アルファベットと数字だけを対象にする
# -f アルファベットの大文字、小文字を区別しない
# -t 文字列の最後の文字を指定
system "look -f '■$word' $eiwa > $temp";
}
# 和英辞典
# 単語が英数字以外の場合
else {
system "look -f '■$word' $waei > $temp";
}
# less でファイルを見る
system "less $temp";
}