プログラミングを学ぶ過程で最初に学んだことは、車輪を再発明する必要がないということです。 すでに書いたものの多くと、適切な部分を見つけて接着する能力は、コードを書く能力と同じくらい重要です。 もちろん、自分自身に手紙を書くほうが面白いのですが、今はそうではありません:)
Perlはインターネットの血であり、CPANはこの言語の非常に重要な部分です。
ある時点で、XMLモジュールの1つが必要になりました。 私はDebian Lennyデスクトップ(ほぼ同じ名前)を持っているので、debian-wayでそれをすることにし、aptを通してインストールしました。 モジュールはすべての依存関係とともにインストールされ、インストールしたものに注意を払っていないことに気付きました。 すでにインストールされているモジュールを確認することに決めたときに、ある問題に遭遇しました。これを単純なコマンドにすることはそれほど単純ではないことがわかりました。
おそらくそれは誰かに役立つでしょう。 File :: Findモジュールが必要になります。
#! / usr / bin / perl -l
厳格な使用;
警告を使用します。
File :: Find :: Ruleを使用します。
私の@seen;
私の$パス(@INC){
$ファイル(ファイル::検索::ルール->名前( '*。pm')-> in($パス)){
私の$ module = substr($ファイル、長さ($パス)+1);
$ module =〜s / .pm $ //; #名前からファイルの終わりを削除
$ module =〜s {[\\ /]} {::} g; #読みやすくするために/ \を::に変更します。
push(@ seen、$モジュール);
}
}
print join( "\ n"、(sort {lc($ a)cmp lc($ b)} @seen))、 "\ n"; #名前でソートして印刷
もちろん、ワイルドカードでモジュールをパイプして表示できます。 たとえば、スクリプト名がfindmodule.plであるとします。
root @ debian:〜#perl findmodule.pl | grep -i snmp
SNMP_Session
SNMP_util