AtsusiPerlは動的な、動的型付けの、高級な、スクリプト(インタープリタで解釈される)言語で、PHPやPythonとともによく比較されます。Perlのシンタックスは、昔のshellスクリプトツールから多くの部分を借りており、それにより混乱させるシンボルを使い過ぎていることで有名です。それらの大多数をGoogleで検索することは不可能です。Perlのshellスクリプトから受け継いだ遺産は、glueコード(他のスクリプトやプログラムと一緒にリンクされているスクリプト)を書くのに、大変役に立ちます。Perlは、理想的にテキストデータを処理することや、テキストデータを生成するのに適しています。Perlは広く行き渡り、有名であり、極めてポータブルで、十分にサポートされています。it(明らかなやり方は、ひとつであるべきであり、むしろひとつのみであるべき)")。Perlには恐ろしいところがありますが、それを補って余りある良さもあります。その点で、今までに作られた全ての他のプログラミング言語と同じです。このドキュメントは、情報を与えることを意図しており、熱心に普及させるものではありません。Wallにはっきり言ってほしいと思っている一般的な用語でプログラムすることをすでに知っている仕事を終えるために何が必要かということ以上のことをPerlについて気にしないこのドキュメントは可能な限り短くしていますが、足らないことのないようにしています。状況は実際にはもっと複雑です"。深刻な嘘を見つけたら、指摘してください。私には子どもにつく重要な嘘をそのままにしておく権利があります。このドキュメントを通して、例においてprintステートメントをデータを出力するために使っていますが、明示的に改行を追加していません。これは、私を気違いにさせないためであり、それぞれのケースで出力される、より重要な実際の文字列に多くの注意を向けさせるためです。多くの例で、実際にコードを動かすと、alotofwordsallsmusheduptogetherononelineのような結果になります。worldPerlスクリプトは.plという拡張子のテキストファイルです。...]]]当面のメモとしていくつか。Perlのシンタックスはかなり寛大なので、結果として振る舞いを予測できない曖昧に見えるようなセンテンスを書くことをあなたに許します。私にとっては意味がないので、それらの振る舞いに関して説明しません。あなたはそれらを避けたいでしょうから。warnings;を、あなたの作る全てのperlスクリプトやモジュールの上の方に置くことです。fooのステートメントはプラグマです。プラグマはPerl.exeへのシグナルです。プログラムが走り始める前に、最初のシンタックスチェックをする方法を変更します。これらの行はコンパイル時に影響し、実行時にはインタープリタが出くわしても影響を受けません。セミコロン;はステートメントの終わりです。シンボル#はコメントの開始です。コメントは行末で終わります。Perlには、ブロックコメントのシンタックスはありません。変数はmyで宣言され、ブロックかファイルの最後までスコープ内に残ります。world"真偽値Perlにはブーリアンのデータ型はありません。"0".Perlのドキュメントでは、繰り返し、特定の状況で"真"か"偽"の値を関数が返すように主張しています。実際には、関数が真を返すように主張しているときは、普通1を返します。関数が偽を返すように主張しているなら、普通は空文字""を返します。弱い型付けスカラーに"数字"か"変数"のいずれかが入っているのかを判断することはできません。正確には、そんなことは見当違いです。Perlはその点で弱い型付けです。スカラが数字か文字のどちらかのように振舞うかは、使われる演算子によります。文字列として使えば、スカラは文字列のようにふるまいます。numbersこのレッスンでは、正しい状況で正しい演算子を使うようにしています。数字としてスカラを比較するのと、文字列としてスカラを比較するのとでは、演算子を区別します。整数の0で始まるはじまるインデックスされたスカラです。Pythonでは、listで、PHPでは、arrayです。配列は丸括弧を使って宣言される、配列のリストです。カンマを最後に続けても問題ありません);配列から値にアクセスするときにはドル記号を使わなければいけません。warningスカラ$varとスカラのエントリ$var[0]を持つ配列@varは衝突しません。いえ、コードを読む人が混乱しますので、同じ名前を付けるのは避けましょう。5"オリジナルのPerlスクリプトの実行時の引数は、組込の配列変数@ARGVに入ります。ある日、誰かのメールアドレス、"jeff@gmail.com"を文字列に入れたとします。これは、Perlに@gmailという配列変数を探させ、文字列の間に入れようとします。それが見つからなければ、エラーになります。変数の展開を防ぐには2つの方法があります:シジルをエスケープする。ダブルクォートの代わりにシングルクォートを使う。"@array"ハッシュ変数ハッシュ変数は文字でインデックスされた素からのリストです。Pythonではdictionary、PHPではarrayになります。"Charles",);この宣言は配列変数の宣言にとても似ていることに注意してください。実際に、二重矢印記号=>は、"ファットカンマ"と呼ばれます。いうのも、これは、カンマセパレータのまさにシノニムだからです。ハッシュは偶数の数のリストを使って宣言されます。...)は全て文字列として取られます。ハッシュから値にアクセスするには、ドル記号を使わなければいけません。undefを返すので、""が出力され、警告が起きます。ブレースが使われていることに注意してください。配列のときと同じですが、スカラの$varとスカラのエントリ$var{"foo"}が入っているハッシュの%varは衝突しません。%scientists;ですが、配列とは違い、ハッシュのキーは順番がありません。効率的な順番で返ってきます。そのため、整列され直された順番に気をつけてください。Isaac"要点をまとめると、配列から値を取り出すのには四角いブラケットを使わなければいけませんが、ハッシュから値を取り出すのはブレースを使わなければいけません。"blue"リストPerlにおけるリストは配列やハッシュとは違うものです。"Charles",)リストは変数ではありません。リストはその場限りの値で、配列やハッシュ変数に割り当てられます。このことは、配列とハッシュの変数の宣言のシンタックスがが一致していることの理由です。"リスト"と"配列"の用語が交換可能な状況は多くありますが、同様に、リストと配列がいくぶん違って見えるところもあり、その振る舞いに非常に混乱します。5)=>の使い方が一方のリストが配列の宣言であることを示し、他方はハッシュの宣言であることを示しています。2つとも、それ自身、何の宣言でもありません。