●愛しい Perl の初歩の初歩(1)

 
「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円で買えます。
 
こんな事を言うのはなんですが、今後、何回も値上げされる予定ですので、
早く購入された方がお得なんです。
 
この教材は、他ではお目にかかれない、信じられないくらい、
クオリティと、コストパフォーマンスが高い教材です。是非!!
 
 

facebookへ twitterへ

 
 
FX比較ランキング  

動画パソコン教室
SEOマニュアル

 
TOPに戻る
オススメの教材

▼最近の記事です。

TOPに戻る

▼このHPに連動した、メルマガも発行させてもらっています。もし気分が乗ったら、登録してもらえれば嬉しいです。

メルマガ購読・解除
【超初心者】からのインターネット講座
   
バックナンバー
powered by まぐまぐトップページへ

田中の初心者向けアフィリエイト講座へ

レスポンシブ・デザインに対応したHTMLデザインテンプレート

リンク集