気の向くままに辿るIT/ICT/IoT
Perl CGI

Perl ローカルマシンでトライアル1

ホーム前へ次へ
perlで”Success CGI!”と表示させてみよう。

Perlスクリプトトライアル1

perlをコンソールで実行トライアル1

 Perlの実行環境が準備できたら簡単なスクリプトを作って早速実行してみましょう。

 ここではブラウザへの出力の前にローカル環境(自分のPC)にあるコマンドプロンプト(またはMS-DOSやDOSプロンプト)、UNIXやLinuxコンソール、ターミナルエミュレータに結果が出力されるようにしてみましょう。

◆出力イメージ

Content-type: text/html\n\n
<html><body>
<p>Success CGI!</p>
</body></html>

 ここではまだブラウザには表示されませんがHTMLファイルを出力するつもりで記述してみましょう。

 Perlの文法によるとコマンド入力から実行させることもスクリプトファイルを書くこともでき、スクリプトを書く場合には、Perlでも他のインタプリタ同様、実行ファイルのある場所を1行目に記述するのでしたよね。

 手順は以下のとおりです。


◆# !に続けてPerlの実行ファイルパスを1行目に記述
◆出力イメージの順にprint関数を使って記述
◆プログラムの終了を表す[ exit; ]を記述

 実際の記述は以下の通りです。

◆test.pl


#!c:¥perl5¥bin¥perl

# ↑はWindowsの場合
# ←"#"はコメント行で実行時は1行目のインタプリタを除き無視される
# UNIX/Linuxでは、たいてい[#!/usr/local/bin/perl]または[#!/usr/bin/perl]
# [ # ]に続けて[ ! ]更にルートを表すスラッシュ[ / ]も忘れずにパスを記述
# Perlなどスクリプト実行ファイルのある場所は環境に依存するので確認が必要


print "Content-type: text/html\n\n";
print "<html><body>\n";
print "<p>Success CGI!</p>\n";
print "</body></html>\n";
exit;


# 出力文字列は任意だけどここではアルファベット(理由は後述)
# ファイル名はここでは[ test.pl ]とします。

 ポイントは以下の通りです。

A)ここでは(Windowsで)『c:¥perl5¥bin¥perl』がperl.exeのパスであるものとします。
  (UNIX系の場合は#!/usr/local/bin/perl など)

B)『Content-type:』はブラウザにどんなファイルであるかを指示しています。ここでは『text/html』としてHTMLをテキスト文書で記述していることを示しています。

※この記述と<html>間は1行以上の空白が必要な為改行(\n)を2つ記述しています。

※言い換えると、連続する改行2つがヘッダ部と本文の区切りとして使われる事になっています(HTTPの仕様)。

C)HTML開始タグ、body開始タグを指定しています。

D)表示させたい文章「Success CGI!」を記述しています。

※要するに定番はHello World!とするところですが天の邪鬼なのでフレーズを変えています。

※アルファベットに限定しているのは、日本語を使うと「文字化け」という現象が起きる場合があるからです。

※この「文字化け」や対策は、この段階ではハードルが高いと思いますので以降の章で御説明します。

E)body終了タグ、html終了タグを指定しています。

F)プログラムの終了を指示しています。

G)出力(指示)の行(B)~ E)にprint文を使用し出力指示しています。

※各行の「\n」は改行でprint文は改行を出力しないので出力指示対象行には付加しています。

H)1行めやコメント、その他関数やループの開始行・終了行など一部例外はありますが、基本的にコマンドの末尾にはセミコロンが必要です。

I)ファイル名は拡張子の有無や拡張子そのものを含め自由ですが、perlスクリプトのファイルに拡張子を付ける場合には一般に[ .pl ]とします。

これでコマンドプロンプト(Windows)の場合は

c:¥> c:¥perl5¥bin¥perl test.pl 

 UNIX/Linuxの場合は

$ /usr/local/bin/perl test.pl 

(環境変数PATH)にperlのパスが設定されている(パスが通っている)場合なら

perl test.pl

 test.pl

 ./test.pl

 ピリオドとスラッシュに続けてスクリプトファイル名

などいずれかを入力して実行した時、冒頭の出力イメージ通り出力されれば成功です。

 この例の場合、ブラウザに表示させる際には、「Success CGI!」の一文だけが表示されます。

 ちなみにコンソールやターミナルエミュレータに表示される通常の出力を『STDOUT/標準出力』、エラー出力を『STDERR/標準エラー出力』、コマンドプロンプトやコンソールからの入力を『STDIN/標準入力』といい、リダイレクトという手法を使って入力や出力を画面ではなくファイルにすることもできます。

 というわけでここまでできたら

ホームページアップロード先はありますか?

 アップロード先(サーバ)がある場合には、

FTPソフトをゲットしてインストール

 更にFTPに興味がある場合には、

FTPS/SFTPとは?

 サーバとFTPが準備できたら、

perlトライアル2 / ブラウザで”Success CGI!”

Perlプログラミング

Perl文法

ホーム前へ次へ