Perlのしくみ

Apr 01 2000
基本を理解すれば、Perlは簡単に使用できます。DOSバッチファイル、Cシェルスクリプト、Webページ用のCGIスクリプトなどを作成するために使用できます。この用途の広いプログラミング言語のすばらしい紹介を入手してください。

Perlは、かなり単純で、広く知られ、尊敬されているスクリプト言語です。これはさまざまなタスクに使用されます(たとえば、DOSバッチファイルまたはCシェルスクリプトに相当するものを作成するために使用できます)が、Web開発のコンテキストでは、CGIスクリプトの開発に使用されます。

Perlの良いところの1つは、Perlがスクリプト言語であるため、人々がプログラムのソースコードを提供することです。これにより、例を挙げてPerlを学ぶ機会が得られます。また、何千ものPerlスクリプトをダウンロードして変更し、自分で使用することもできます。 Perlの悪い点の1つは、この無料のコードの多くが理解できないことです。 Perlは、信じられないほど不可解なスタイルに向いています。

この記事は、プログラミング方法をすでに知っていることを前提としています(Cプログラミング言語を知っている場合、これは特に簡単です)。基本を理解すれば、Perlは簡単に使用できます。この記事では、最初から始めて、Perlを使用して最も一般的なプログラミングタスクを実行する方法を示します。この記事の終わりまでに、比較的簡単に独自のPerlスクリプトを作成し、他の人が作成した不可解なスクリプトを少し簡単に読むことができるようになりますが、これは良い出発点になります。

コンテンツ
  1. 入門
  2. こんにちは世界
  3. 変数
  4. ループとIf
  5. 関数
  6. 読む

入門

Perlを開始するには、Perlインタープリターが必要です。どのUNIXマシンでも、99.99パーセントの確率ですでに存在しています。WindowsマシンまたはMacでは、言語の最新リリースをダウンロードして、マシンにインストールする必要があります。(詳細については、この記事の最後にあるリンクを参照してください。)PerlはWebで広く入手可能であり、無料です。

次に、Perlに付属しているDOCSディレクトリを確認してください。そこにはユーザーマニュアルタイプのものがあります。ある時点で、すべてのドキュメントを読んだり、少なくともスキャンしたりしても問題はありません。最初は面倒ですが、この記事を読んだ後は、はるかに理にかなっています。

こんにちは世界

Perlをロードしたら、Perl実行可能ファイルを含めるようにパスが適切に設定されていることを確認してください。次に、テキストエディタを開き、テキストファイルを作成します。ファイルに次の行を配置します。

print "Hello World!\ n";

ファイルに「test1.pl」という名前を付けます。コマンドプロンプトで、次のように入力します。

perl test1.pl

Perlは、テキストファイル内のコードを実行して実行します。「HelloWorld!」という単語が表示されます。stdoutに印刷されます(標準出力)。ご覧のとおり、Perlでプログラムを作成して実行するのは非常に簡単です。(UNIXを使用している場合は、最初の行に#!/ usr / bin / perlのようなコメントを付けることができます。そうすれば、コマンドラインで「perl」という単語を入力する必要はありません。)

印刷コマンドは、stdoutに物事を印刷します。\ N表記は改行です。テストプログラムを次のように変更すると、より明確になります(はコメントを示します)。

#2行で印刷
   印刷 "こんにちは\ n世界!\ n";

printコマンドは、「\ n」をリテラル文字ではなく改行として解釈する必要があることを理解していることに注意してください。解釈は、printコマンドが原因ではなく、二重引用符の使用が原因で発生ました(Perlでは引用符と呼ばれる方法)。代わりに一重引用符を使用する場合は、次のようになります。

印刷 'こんにちは\ n世界!\ n';

\ n文字は解釈されませんが、代わりに文字通りに使用されます。

バッククォート文字もあります:`。これらのペアは、引用符の中にあるものがオペレーティングシステムコマンドとして解釈されるべきであり、そのコマンドが出力されているコマンドの出力で実行されるべきであることを意味します。バッククォート内にオペレーティングシステムからのコマンドライン操作を配置すると、実行されます。たとえば、Windows NTでは、次のように言うことができます。

印刷 `cmd / c dir`;

DIRコマンドを実行して、現在のディレクトリのファイルのリストを表示します。

正規表現の引用に使用される/文字も表示されます。

printコマンドは、コンマを区切り文字として理解します。例えば:

印刷 'こんにちは'、 "\ n"、 '世界!';

ただし、ピリオドも表示されます。

'hello'を出力します。"\NS"。'世界!';

ピリオドは実際には文字列連結演算子です。

Cの人々のためのprintf演算子もあります。

PERLノート

Windows NT、あなたが言うことはできません。

印刷 `dir`;

dirは個別の実行可能ファイルではないため、コマンドインタープリターcmdの一部です。cmd /?と入力します 詳細については、DOSプロンプトで。

変数

変数はPerlで興味深いものです。あなたはそれらを宣言せず、あなたは常にそれらを示すために$を使用します。それらは最初の使用で存在します。例えば:

   $ s = "こんにちは\ n世界\ n";
   $ t = 'こんにちは\ n世界\ n';
   $ s、 "\ n"、$ tを出力します。

または:

   $ i = 5;
   $ j = $ i + 5;
   $ i、 "\ t"、$ i + 1、 "\ t"、$ jを出力します。#\ t =タブ

または:

   $ a = "こんにちは";
   $ b = "世界\ n";
   $ c = $ a。$ b; #の使用に注意してください。文字列を連結する
   $ cを出力します。

以来は文字列の連結です。。=は、Cでの「+ =」と同じように期待される意味を持ちます。したがって、次のように言うことができます。

   $ a = "こんにちは";
   $ b = "世界\ n";
   $ a。= $ b;
   $ aを印刷します。

配列を作成することもできます

   @a =( '猫'、 '犬'、 'うなぎ');
   印刷@a、 "\ n";
   印刷$#a、 "\ n"; #最高のインデックスの値、ゼロベース
   印刷$ a [0]、 "\ n";
   $ a [0]、$ a [1]、$ a [2]、 "\ n"を出力します。

$#表記は、Cと同様に配列マイナス1の要素の数に相当する配列内の最も高いインデックスを取得し、すべての配列はゼロでインデックス作成を開始します。

ハッシュを作成することもできます

   %h =( '犬'、 '樹皮'、 '猫'、 'ニャー'、 'ウナギ'、 'ザップ');
   print "The dog say"、$ h {'dog'};

ここで、「樹皮」は「犬」、「ニャー」は「猫」などの単語に関連付けられています。同じ宣言のより表現力豊かな構文は次のとおりです。

   %h =(
      犬=> '樹皮'、
      cat => 'ニャー'、
      うなぎ=> 'ザップ'
   );

=>演算子は、左の文字列を引用符とコンマとして機能します。

ループとIf

Cの場合と同じように、単純なforループを作成できます。

   for($ i = 0; $ i <10; $ i ++)
   {{
      印刷$ i、 "\ n";
   }

一方で声明は簡単です:

   $ i = 0;
   while($ i <10)
   {{
      印刷$ i、 "\ n";
      $ i ++;
   }

ステートメントが同様に簡単な場合

   for($ i = 0; $ i <10; $ i ++)
   {{
      if($ i!= 5)
      {{
         印刷$ i、 "\ n";
      }
   }

ブール演算子は、彼らがCで行うように動作します。

  • &&
  • || また
  • いいえ

数字の場合:

  • ==等しい
  • !=等しくない
  • <<=>> =(予想どおり)

その他:

  • eq
  • ne
  • lt
  • gt
  • ge

配列がある場合は、foreachを使用して簡単にループできます。

   @a =( '犬'、 '猫'、 'うなぎ');
   foreach $ b(@a)
   {{
      $ b、 "\ n"を出力します;
   }

Foreachは、配列@aの各要素を取得し、@ aがなくなるまで$ bに配置します。

PERLノート

1行の場合でも、「begin」と「end」の中括弧{})を使用する必要があります。

関数

subという単語でサブルーチンを作成します。サブルーチンに渡されるすべての変数は、_という配列で到着します。したがって、次のコードが機能します。

   show( 'cat'、 'dog'、 'eel');

   サブショー
   {{
      for($ i = 0; $ i <= $ #_; $ i ++)
      {{
         印刷$ _ [$ i]、 "\ n";
      }
   }

$#は配列の最大のインデックス(要素の数から1を引いたもの)を返すので、$#_はパラメーターの数から1を引いたものであることに注意してください。

次のように、ローカル変数をサブルーチンlocalという単語宣言できます

   サブxxx
   {{
      ローカル($ a、$ b、$ c)
      ..。
   }

次のように、を使用して関数を呼び出すこともできます。

&show( 'a'、 'b'、 'c');

&記号はあいまいな場合にのみ必要ですが、一部のプログラマーは常にそれを使用します。

サブルーチンから値返すには、キーワードreturnを使用します。

読む

STDINからの読み取り

stdin(標準入力)からデータを読み込むには、STDINハンドルを使用します。例えば:

   print "高い数値を入力してください:";
   $ i = 
         
          ;
   for($ j = 0; $ j <= $ i; $ j ++)
   {{
      印刷$ j、 "\ n";
   }
         

整数を入力する限り、このプログラムは期待どおりに機能します。 一度に1行ずつ読み取ります。次のように、getcを使用して1文字を読み取ることもできます。

$ i = getc(STDIN);

または、読み取りを使用します。

read(STDIN、$ i、1);

readコマンドの3番目のパラメーターの1は、読み取る入力の長さです。

環境変数の読み取り

PERLはENVという名前のグローバルハッシュを定義し、それを使用して環境変数の値取得できます。例えば:

印刷$ ENV {'PATH'};

コマンドライン引数の読み取り

PERLは、スクリプトに渡されるコマンドライン引数を含むグローバル配列ARGVを定義します。$#ARGVは渡された引数の数から1を引いた数であり、$ ARGV [0]は渡された最初の引数であり、$ ARGV [1]は2番目の引数です。

これで、簡単なPerlスクリプトを読み書きできるようになります。また、詳細については、完全なドキュメントにアクセスできる必要があります。詳細については、次のページのリンクを参照してください。

PERLノート

環境変数の名前は大文字である必要があります

多くの詳細情報

関連記事

  • Javaのしくみ
  • Cプログラミングの基本
  • CGIスクリプティングのしくみ
  • ブール論理のしくみ
  • オペレーティングシステムのしくみ

その他のすばらしいリンク

  • PERL-実用的な抽出とレポート言語
  • perl.com
  • 包括的なPerlアーカイブネットワーク
  • CGIリソースインデックス:プログラムとスクリプト:Perl
  • Perlチュートリアル
  • Yahooディレクトリ:Perl
  • Perl Mongers