HOME > おもちゃ箱 >
perlって真珠?

ボッキ〜中島の初心者cgi設置奮闘記。Acci_Notice v3.0使用。
 

  パールチェック    [ 013 ]

 自作にしろフリーにしろcgiをFTPし、ブラウザーでアクセスしてみればエラー表示、それも英語だから意味不明。
 訳しても「要するにエラーなのね」と言ったところ。注意深く訳せば、プログラム自体なのかパーミッションの問題なのかといろいろ原因を絞り込める(らしい)。

 普通の人が足がかりにcgi等を始める時って、普通のプロバイダーからが多く、下手をすれば、ssiやsendmailが駄目だったりして、telnet(UNIX)なんて、何それ?って感じの夢の夢の高嶺の花状態・・私のことだ。

 運良く、telnetがOKのプロバイダー(linkclub)に入っていたので、慣れないunixコマンドを打ち込んで、パールチェックしていた。
 unixコマンドとか言っても、そのcgiの場所まで行くまでの「cd」「ls -l」とか、パールチェックの「perl -wc ***.cgi」ぐらいしか使っていなかった、いや、それしか知らなかった。

 ところが、このlinkclubのパールバージョンが4なので、フリーcgiの中に「my」とか「and」「or」があると、待っていましたとばかりに「エラーなんだよ!」と慇懃無礼に教えてくれる・・・と、いうのが分かるまでかなりの時間を要した。
 始めたばかり、またはいつまで経っても良く理解していない私には、パールにバージョンがあるなんて全く知る余地もないんだな。
 それでも、それが分かり、myの変数名を変えたり、一つ一つ「&&」「||」に変更して作動させた時には嬉しかった。実際には、「&&」と「and」など多少意味合いが違うけど。

 それなら、そんなパールチェックcgiを自分で作れば楽ではないか、と思った。それもformを使い常設していれば、いつでもどれでもチェックできるぞ、というヤツだ。

 参考書を見たら、パールスクリプトからUNIXコマンドを実行できるのが、「open」「system」「``(バッククォート)」の3つあるみたいだ。
 おお、なんで今までこんな簡単なことに気付かなかったのだろうと、
=====================================
$what = './***.cgi';
open CHECK, "perl -wc $what |" || &error;
while( defined( $line = )){
・・・・・・・・・・
=====================================
としたけど、全然表示されず、$lineは常に空欄模様。

ここまで来て(何処までじゃ)諦めるのもくやしいので、例の「らくだ本」をペラペラと眠くなるのを我慢して見ていたら、「16.3 パイプ」に作例が載っている夢を見たのでアレンジして、

open CHECK, "perl -wc $what 2>&1 |" || &error;

おお、ちゃんと動いて表示したぞ!
でも、いきなりこのページに来たので、「2>&1」の意味が全く分からない。
ま、パール4でもちゃんと動作&表示したので、今後の最重要研究課題とし、使うことにした(安易〜)。
「Acci_PerlC.cgi」登録。

 ところで、例のラクダ本、現在、1/4から1/3の間を読んでいる。


 1    2  

Back