突然ですが、昨日から Perl を勉強し始めました。
なんとなく、CGI を作ってみたいと思いまして、
やり始めて、かなりC言語っぽいなぁという点と、ああ違うなという点があったのでまとめておくことにします。こう言うのは、早くしないと忘れてしまうので、
C言語 と Perl を比較して
- 変数の型がない
- 変数宣言が不要
- 特殊変数という物がある
- 関数ではなくサブルーチン
- 正規表現が充実している
今思いつくのはこれくらいですかね。他にも有ると思いますが、忘れました。
変数の型がない
C言語みたいに、厳しい型という物がありません。簡単に使うことが出来ます。
これは、長所なのか短所なのかよくわかりませんね。
長所としてみるなら、変数が簡単に使える。
短所として見るなら、変数にどんな値が入っているのか前文を見ないとわからない。
変数宣言が不要
これは、しなくても良いということです。しかし、しっかりと宣言する方がいいです。
特殊変数という物がある
$_ など特殊な変数があります。$_ はサブルーチンの引数などになります。
まだ慣れないので、使いにくいですが、Perl では、よくこれを使った書き方をするそうです。
関数ではなくサブルーチン
C言語では、引数と戻り値を厳密に指定した関数という物がありますが、Perl では、サブルーチンとして実装されています。
このサブルーチン、結構やっかいで、変数同様、曖昧です。
引数の個数、型、戻り値の有無、型が、サブルーチンの定義で指定できません。
なので、呼び出し時に間違って呼び出されるときなどが有ります。
マイナスな点だけではありません。プラス点としては、戻り値を2つ以上とることが出来ます。C言語では、配列や構造体を返しているような感じです。
正規表現が充実している
最大の特徴だと思いますね。文字列の探索、置換などが一発で出来ます。
また、正規表現だけでなく、文字列関連の操作が非常に強いです。
今、CGI を作っています。どんなCGIかは、明日公開します。8割ほどできました。現在、エラーチェック中です。
CGIで一番怖いのは、XSS(クロスサイトスクリプティング)やディレクトリトラバーサル攻撃、SQLインジェクション攻撃ですね。しっかりと、エラーチェックをすれば大丈夫なはず何ですが、どうしても漏れがでますね。
コメントする