コミュ障だから明日が僕らをよんだって返事もろくにしなかった

何かを創る人に憧れたからブログをはじめたんだと思うよ

真珠の宝石言葉は傷つきやすい心を守り忍耐が報われる

真珠とは

宝石は古来より、その希少性と美しさから権威の象徴として利用されてきました。こうした歴史から、持つものに力を与えると伝えられるようになりました。

真珠
天然では産出が稀であり加工が容易で「月のしずく」「人魚の涙」とも呼ばれているほどの美しい光沢に富むため、世界各地で古くから宝石として珍重されてきた。またその希少性から薬としての効能を期待し、服用される例がしばしば見られる。日本でも解熱剤として使用され、現在も風邪薬として販売されている。

wikiみたら日本で風邪薬として利用されているとか書かれてた、真珠ってそんな漢方みたいなノリで使うものなの?


さて、真珠とかパワーストーンとか、どうでもよくていつものようにPerlを使って何かやってみたというプログラム的な話をしていこうと思います。ところでPerlって真珠って意味の単語だと思ってたんですけど造語だったんですね。真珠のスペルはPearlだった。まあ、造語と言っても真珠から取ってきている単語なんで実質真珠みたいなものですけど……。

PerlのようなものでCGIに手を出してみる

僕はCGIというものが未だによくわからんのですよね。ググるとなんでも手に入る飽食の時代、「こんなインタフェース作ったから使って使って」といった話を聞いても「すごーい」としか感じなくなってしまったのです。

CGI
Common Gateway Interface(コモン・ゲートウェイ・インタフェース、CGI)は、ウェブサーバ上でユーザプログラムを動作させるための仕組み。現存する多くのウェブサーバプログラムはCGIの機能を利用することができる。

というわけでCGIについてざっくり説明すると、「サーバー側でちゃんと設定いじったらプログラム(スクリプト)を動くようにしたから使ってみてね」みたいな子です。でもそういうのって今じゃ当たり前に環境が用意されているからなんだか実感がわかないのですよね。


―で。
せっかくApacheの設定いじるようにしたのだから、サーバの設定いじるようなことしてCGIの触りだけやってみることにしました。なお、言語はPerlとなります。

つくってみた

サーバー環境は一から設定するのが面倒だったのでXAMPPから取ってきたやつを使いまわしてます。
使いまわしたら、設定いじることなかったというね……。

f:id:andron:20170506220227p:plain

ソースコード
hello.cgi

#!"C:\xampp\perl\bin\perl.exe"

print "Content-Type: text/html\n\n";
print "<html>\n";
print "<head>\n";
print "<title>サンプル</title>\n";
print "<meta charset='UTF-8'>\n";
print "</head>\n";
print "<body>\n";
print "<h1>ようこそ</h1>\n";
print "<hr>\n";
print "</body>\n";
print "</html>\n";

いわゆるなんの捻りもないハローワールドです。それ以上でもそれ以下でもないのです。まあやってみて動くかどうかの検証みたいなやつだから…。


一行目の#!"C:\xampp\perl\bin\perl.exe"これ無視して行けるんじゃないかと思ってたけどエラー出てダメだでした。

ちょっとどうでもいい話ですけど一行目のコレってサーバーに「こいつはPerlのプログラムだからパスの場所を使って解読してね」のおまじないなんですね。UNIX系統だとこのおまじないを付けないとなんのファイルか認識してくれない*1のだけど、Windowsで動かしてるし拡張子で認識してワンチャン動くかなとか思って一行目抜いたらエラーはいてダメでした。まあ、そうでなければわざわざApacheを使ってCGI動かそうとした意味もないですからね。良しとしましょう。


さらにどうでもいい話なんですけど、CGIってprint "HTMLタグ\n\n"みたいな書き方でテンプレート作るものなのでしょうか?なんだか手間みを感じます……。

*1:UNIX系は拡張子で認識するのではなくこのおまじないで認識します