Perl入門   No.1


0 はじめに
 
このコーナーをのぞいたあなたは、どの程度コンピュータを使っていますか。またPerl言語に対して、どのような期待を持っているのですか。
 
使っている程度として
@パソコンに初めてさわった。もう少しいろいろと知りたい
Aある程度Windowsパソコンは使ってきた。(いろいろなソフトは操作出来る)
BUNIXやLinuxをさわり始めた
Cshellはある程度作れる。
Dサーバ管理が出来る
 
といろいろな段階が想像出来ますが、この解説は、AやBぐらいの人を対象にしています。ですから@の人は、わからない所があればもっとやさしい解説書を手元に置いて、ここを見てください。またCの人はすぐに理解出来るでしょう。Dの人は、暇つぶしに見るのならばいいですが、ちょっともどかしく感じるかも知れません。
 
それから、Perlに対しての期待として
@言語を学ぶのは初めてで、なんだかおもしろそうなのでのぞいてみた
AC言語などを少しかじった
B最近はCGIなどで使われている言語だから、どんなものか興味がある
Cいろいろな言語をバリバリに使えるがPerlは初めて
 
@とCの人はここを見る必要はありません。特に@の人はC言語や他のオブジェクト指向型言語を学びたいという希望があればそちらに専念してください。Cの人はもっと深遠な解説書を見て直接習得してください。AとBの人を対象とします。
 
Perlは、C言語などのように大きなアプリケーションやシステムを作るための言語ではありません。文字列処理などでちょっとした小道具を作りたい時の言語です。ですからC言語のようなポインタ変数や構造体といった便利だが難しい(慣れないと動くようになるまでには数時間から数日かかる)ものはありません。またオブジェクト指向型のようなイベント処理やクラス定義のようなものはありません。極めて古典的に1行目から順番に動いていくプログラムです。
しかし正規表現が標準で実装されている(C言語だとモジュールをリンクしなければならない)ことや、文字列操作がうんと簡単。例えば、(メモリ上安定した?)文字列連結
#include<string.h>
main(){
  char mozi,mozi_1,mozi_2;
  char *s = (char*)malloc(strlen(mozi_1)+strlen(mozi_2)+1);
  strcpy( mozi,mozi_1);
  strcat( mozi,mozi_2);
  }
 
 





 
 
なんてC言語ではしますが、Perl だと
$mozi = $mozi_1.$mozi_2  (共用体やインスタンスではありません)
だけですむのは、うれしいことです。
 ですから、C言語などでよくあるコンパイルエラーやどこが間違っているのかわからないというような頭を抱えるような事態はほとんど起こりません。(と言うと言い過ぎですが、少ないことは事実です)。もちろんPerlも他の言語と同じように、使いこなしていくと様々な高度な処理も可能です。しかしちょっとしたユーティリティをちょっとした手作業で作るということに最適な言語と言えるでしょう。
 ただ、いきなり難しい使い方から入るということはどんなものに対してでも誰もしないでしょう。まずはやさしい所から覚えていきましょう。
 
 というわけで、この解説は、だいたい中間ぐらいのコンピュータの知識を持っている人で、ちょっとした作業をプログラムを作って処理したいと思っているとかCGIの初歩的な作り方を知りたいという人向けのものです。実際に例題を動かしながら、最後まで読み進んでください。わからない所があれば、それは解説が悪いせいですので、質問をしていただいてもかまいません。それで何かの役に立てれば、この解説を書いた意味があるというものです。
 
2003/01 m.yoshimura