15

ディレクトリコンテンツの配列を作成する方法を教えてもらえますか? . 当然のことながら、ファイル グロブが回答として提供されました。私を驚かせたのは、投稿glob()ではなく使用を推奨していたことです<*>

私が使っ<*>ているのは、それが私がずっと前に学んだことであり、それについて考えたことがないからです. これは正当な理由ではありません。

グロビングにはどの構文が好まれますか? また、その理由は何ですか?

4

3 に答える 3

12

<>個人的には、それはひどく過負荷であると思います。これは一種の「イテレータから読み取る」という意味ですが、どのイテレータが私の好みに合っているかを判断するには、少し魔法と微妙さがありすぎます。たとえば<$foo>、 と<$foo{bar}>は非常に異なることを意味し、魔法の裸<>はまだ別のことを意味します。

私は、ハンドルglobの構文を使用して予約することを好みます。そうすることで、 の内容がハンドルではなくパターン (またはハンドルに解決されるもの) である<>かどうかを判断するという認知的負担が軽減されます。<>とはいえ、表記法を「読み取り」ではなく「イテレーター」と精神的に関連付ける場合は<>、関数構文よりもそれを好むかもしれません-少なくとも、リストを生成するのではなく結果をステップオーバーしたい場合。

于 2010-01-18T18:42:26.863 に答える
10

あなたがリンクしたそのperldocは、山かっこの構文にいくつかの問題があると言っています:

<$foo> 二重引用符の解釈の 1 つのレベルが最初に行われますが、前の段落で説明したように、それは間接的なファイルハンドルであるため、言うことはできません。(Perl の古いバージョンでは、プログラマーは中括弧を挿入して、ファイル名グロブとして解釈するように強制してい <${foo}>ましglob($foo): )

私は主にFile::Find自分自身を使用しています。

于 2010-01-18T17:54:17.533 に答える