「Perl君」っう言語があります。
男性なんですね、「Perlさん」ではありません。(笑)
可愛いい名前ですよね、何〜んとなく。
真珠を連想してしまいます。(ちなみに、真珠のスペルはPearlですが)
この言語、20年以上前から、この世に黙々として存在し続けています。
ラリー・ウォールっうオジサンがその昔、発明しました。
(この人、小説も書くみたいよ?)
廃る、朽ちる?事が無い、実にしぶとい言語です。
インターネットなんて呼ばれている、無造作な洞窟が無かった良き昔は、
テキストの整形なんぞによく使われていました。
その頃に、Perlと肩を並べて歩いていた言語には、sedとかgawkなんてのが・・・
この「Perl君」ときたら、今でも大手を振って、ネット上に君臨しています。
ここ数年、ずる賢いPHPに、その席を少しだけ明け渡したフリをしながら。
という事で、偉い「Perl君」の初歩講座を始めたいと思います。不定期です。
●素敵なスクリプト(No.1)
まず、たった4行の、素敵なスクリプトの提示です。
-------------------------------------------------------------
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "こんな僕でもいいですか?\n";
exit(0);
-------------------------------------------------------------
これだけ。たった4行のスクリプトです。
でも、このミクロの世界にも、キンチとしたPerlの世界が生きているんです。
●【1行目】の、#!/usr/bin/perl
これは、決まり事なんですが・・・
一行目で、以下を宣言してます。一行目でないとダメなんですね。
何で〜? ラリー・ウォールさんが決めたんでしょうかね?
※これは、Perlで書かれたスクリプトだぞ
※Perlは、このサーバーの、この位置(パス)にあるからね
先頭の「#!」を、UNIX的には、「shebang」と呼びます。
(だいたいの人は、シェバンと発音してるみたいです)
右側のパス位置する、perlを起動してね、という、お願い事です。
このケースですと、サーバーの天辺ルートから辿って
/usr/というフォルダーの中の、/bin/というフォルダーの中に
「Perl」というプログラムが入っていますよ〜、
まずは、これを起動せよ! という命令の宣言です。
Perlは、サーバーのどこに置いても構わないのですが、
普通は、「/usr/bin/perl」とか「/usr/local/bin/perl」です。
Perlがどこに置いてあるか不明の場合、自分で調べる方法もいくつかあります。
でも、面倒なので、サーバー会社のQ&Aページ等で調べましょう。
ちなみに、Windowsサーバーなんかだと、この1行目は不要だったりします。
●【2行目】の、print "Content-type: text/html\n\n";
「print」とは、右側の「"(ダブルコーテーション)」で囲んだ文列を
表示しなさい、という命令語です。関数と言います。
必ず小文字で書いて下さい。
「print」と「"Content-type: text/html\n\n";」の間は、
半角SPで一つ以上、空けなければなりません。
半角SPであれば、何個空けても大丈夫です。
沢山の半角SPの羅列も、一つの半角SPと見なされます。
全角SPだとエラーですよ。
「"Content-type: text/html\n\n";」について・・・
「Content-type: text/html」ってのは、Perlとは直接関係がないのですが
貴方が使っているブラウザに、「HTML」として表示してね、とお願いしてます。
ちなみに、「Content-type: text/plain」と書くと、
お利口なブラウザは、ただのテキスト文書として扱います。
また、「Content-type: application/octet-stream」なんて書くと
ブラウザは、ダウンロードするかどうかを聞いてきます。
ただ、この動作の判断は、
ブラウザの種類やVERによって、結構不安定だったりします。
おバカさんのブラウザもいるんです。
最後の「\n」は、改行を意味します。
これは、htmlでいう「<br>」ではありません。
あくまでも、プログラム上の記述の改行です
よく見ると「\n」が2つ続いてますよね。
これは、「Content-type:」を宣言した行の後は、
次のHTML行まで、一行以上の空行が必須だからです。
2回の改行で、一つの空行を作る訳です。
左右にある「"(ダブルコーテーション)」と
最後の「;(セミコロン)」については、下の【3行目】の解説で説明します。
●【3行目】の、print "こんな僕でもいいですか?\n";
ここでも「print」という関数が出てきました。
「print」という関数は、柔軟に出来ていて、ここでは
ブラウザに対しての表示命令として使っていますが、
特定のファイル内に、
「"こんな僕でもいいですか?\n"」の文章を出力する事も可能です。
「"(ダブルコーテーション)」にも、ちゃんと意味があります。
これを「'(シングルコーテーション)」にすると、
「\n」が、そのまま文字列として表示されてしまいます。
「\n」は、改行を意味しますが、
ダブルコーテーションにしておくと、ちゃんと、改行の意味が伝わります。
つまり、以下のような場合・・・・
$boku = '僕';
print "こんな $boku でもいいですか?\n"; だと
「こんな 僕 でもいいですか?」になり、
print 'こんな $boku でもいいですか?\n'; だと
「こんな $boku でもいいですか?\n」になってしまいます。
ちなみに、こんな書き方もPerlでは出来るんです。
print "こんな僕でもいいですか?\n"; と
print qq|こんな僕でもいいですか?\n|; は同じだったりします。
最後の「;(セミコロン)」にも、大きな意味が隠されています。
(別に隠れてはないか・・・苦笑)
この「print」という命令は、とりあえずここで終わりですよ、という意味です。
「;」を書かないと、プログラムは自分を見失い、エラーを起こします。
必須のお約束事なんです。
「こんな僕でもいいですか?」ですが・・・
このサンプルでは、16ビットの日本語にしました。
これも、問題が起こるケースがあります。
16ビットの日本語っう文字列は、得てして、外国育ちのPrelには
旨く理解出来ない要素が詰まっています。
例えば、Windowsでの常連の文字コード「シフトJIS」で、
Perlのプログラムを書いたりすると、「申」とか「能」といった文字が
キチンと表示されません。
これは、Perl内部での処理で不都合なコード(メタ文字という)が、
日本語16ビット文字の「申」とか「能」のコードの中に入っているからです。
例えば、「"こんな僕の能力でもいいですか?\n";」なんてスクリプトを
「シフトJIS」で書いたりすると、「能」の前後に文字化けを生じます。
※文字化けの例
http://www.tsunetoshi-tanaka.com/cgi/perl1a.cgi
(もし、ブラウザ上の文字全部が化けていたら、
ブラウザのエンコードを、日本語のシフトJISに合わせてください)
これを回避する簡単な方法は、「能」の後に、「\」を記述したりします。
「"こんな僕の能\力でもいいですか?\n";」という感じです。
こうする事によって、Perlに、「能」という日本語を理解させてやる事が可能です。
※「能」の後に、「\」を記述した例
http://www.tsunetoshi-tanaka.com/cgi/perl1b.cgi
●【4行目】の、exit(0);
「exit」も「print」と同じ関数です。
このプログラムは、ここで終了です。と、宣言してます。
もちろん、最後の「;」も必須になります。
「(0)」は、正常に終了して下さいね、という確固たるお願いです。
ですが、これは書かなくても大丈夫です。
書かない場合は、自動的に「(0)」と見なされます。
単に、「exit;」と書いても同じ意味になります。
ちなみに、「exit(1);」というのもありますが、あんまり目にしません。
「0」以外は、異常終了を意味するのですが
正常でない終了をお願いするケースは、あまりありません。
●たった4行のスクリプトなのに
このように、たった4行のスクリプトからでも
Perlの極意?を身に付ける事が出来たりします。
単に、記号として暗記するのもいいですが、
たまには、そこに書かれている意味を噛みしめながら
Perlをじっくり読んでみるのも、楽しさが倍増すかもしれませんね。
最後に、この4行のプログラムをサーバーにUPしたものがこちらです。
http://www.tsunetoshi-tanaka.com/cgi/perl1.cgi
一度設置すると、24時間・365日動いてくれる、頼りになるヤツです。
不定期につづく
★★[PR]
毎度のご推薦です。
WEBの技術習得は、とっても大事です。
技術の習得があるからこそ、出来る事があるのだと思うのです。
★田中洋平さんの「動画でわかるパソコン教室DVD」
なんと、総計397時間にも及ぶ動画による解説。
(4551レッスン、29ジャンル)
ほとんどの有名なソフトや技術の学習を網羅します。
Dreamweaverや、FlashでのHP制作から、
Photoshop等のAdobeソフトの習得、
エクセル、ワード、パワポ・・・・
HTMLやCSSのHPスクリプトの学習、
CGI、PHP、Java、C言語等のプログラミングまでを網羅します。
iPodやiPhone用の動画も付いています。
パソコンの前で学習しなくても、
電車の中、カフェ・・・これらが学習場所になりますよ。
★田中洋平さんの「動画でわかるパソコン教室DVD」
今現在ですと、定価69,900円が、29,980円で買えます。
こんな事を言うのはなんですが、今後、何回も値上げされる予定ですので、
早く購入された方がお得なんです。
この教材は、他ではお目にかかれない、信じられないくらい、
クオリティと、コストパフォーマンスが高い教材です。是非!!
▼このHPに連動した、メルマガも発行させてもらっています。もし気分が乗ったら、登録してもらえれば嬉しいです。
☆リンク集