6

「Perl は構文解析がとても得意だ」と言うとき、人々は何を意味するのでしょうか?

Perl は、Python や Ruby などの他のスクリプト言語よりも優れている、または強力な理由は何ですか?

4

5 に答える 5

19

これらは、Perl がもともとテキスト ファイルを処理するために設計されており、それを容易にする多くの機能を備えていることを意味します。

  • Perl には文字列処理のための多くの関数があります: substr, index, chomp, length, grep, sort, reverse, ...lcucfirst
  • Perl は、値の使用方法に応じて、数値と文字列を自動的に変換します。(たとえば、ファイルから文字列 '100' を読み取り、最初に文字列を整数に変換する必要なく、1 つ追加することができます)
  • Perl は、プラットフォーム エンコーディング (Windows の CRLF など) とプログラム内の論理改行 ("\n") との間の変換を自動的に処理します。
  • 正規表現は、個別のライブラリではなく、構文に統合されています。
  • Perl の正規表現は、パワーと機能の「ゴールド スタンダード」です。
  • Perl は Unicode を完全にサポートしています。

Python と Ruby には、テキスト処理のための優れた機能もあります。(特に、Ruby は Perl から多くのインスピレーションを得ており、Perl は恥知らずに他の多くの言語から借用してきました。) どちらが優れているかを尋ねてもほとんど意味がありません。好きなものを使ってください。

于 2009-12-11T15:57:59.080 に答える
11

Perl の長所の説明を、別の言語の欠点の説明と見なさないでください。Perl はテキスト処理に適していますが、Ruby や Python がダメというわけではありません。

Perl が「構文解析に適している」と人々が話すとき、彼らは主に Perl の歴史を反映しています。負荷の高いテキスト処理が容易ではなかった時代に発明されました。そのいくつかを C または C++ で試してみてください (Java もまだ発明されていませんでした!)。その昔、Larry は sed と awk を使って自分の仕事をしようとしていましたが、それらの限界に直面していました。彼は、テキストをさらに使いやすくするツールを作成しました。

Perl は依然としてテキスト操作タスクに非常に適していますが、他の多くの言語も同様です。

于 2009-12-11T19:17:08.240 に答える
4

Perl は、ETL やバッチ処理の動きにも適しています。ファイルを取得するのは最小限のコードです。それをプッシュしてsplitを取得mapし、レコードに対していくつかの論理的なビジネス アクションを実行し、それをディスクに書き戻します。

データ解析よりもデータ処理の方が多いと思いますが、データ処理はバルクデータ解析です。

于 2009-12-11T17:38:07.763 に答える
1

Perlは、C / C ++ / Javaと比較すると、テキストの解析に非常に優れています。

于 2009-12-11T14:55:20.523 に答える
0

これはおそらく、perl のドキュメントで説明されているように、人々がその目的のために構築されたものに慣れているためです。そのため、多くの人がテキスト ファイルの解析を Perl と関連付けることが一般的になっています。Ruby や Python を除外するわけではありませんが、どちらかというと一般的な名前です。

Perl は、任意のテキスト ファイルをスキャンし、それらのテキスト ファイルから情報を抽出し、その情報に基づいてレポートを印刷するために最適化された言語です。また、多くのシステム管理タスクに適した言語でもあります。この言語は、美しい (小さい、エレガント、最小限) というよりは、実用的 (使いやすく、効率的、完全) であることを目的としています。

于 2009-12-12T01:33:17.447 に答える