昨日に引き続きPerlと戯れてみる。正直言って昨日一日頑張ったが無理だと投げてしまっていた。しかし嬉しい事に、rss_stock.cgiの作者であるio氏からコメントをいただけた。今の私の知識ではどう頑張っても無理だったという理由が分かったからもう一頑張りしてみた。
io氏が作ったrss_stock.cgiは、日本株式の銘柄番号を指定すれば、その株価情報をRSSで返してくれるというCGIだ。氏のサイトに解説が3ステップに分けて書かれている。
恐らく氏にとってはPerlでスクリプトを書く事は簡単な事なのだろう。しかし私にとってはかなり高い壁である。Perl使いにしてみれば当然の事さえも知らないであろう。(Perl本は数冊買って読んだがちんぷんかんぷんである..orz)
後は、Googleで初心者に分かりやすく、かつ簡潔にまとめてくれているサイトと出会えるかどうかだ。今の時代にはむしろその方が、出会える確率が高いと思う。本を何冊買っても自分にしっくり来ないという事は多々あるが、ネット上の様々な性格の人の説明を読み比べると、自分の思考にピッタリ来る人が大抵見つかるものだ。但しニッチなジャンルでは絶対数が少ないので出会える確率も当然低い。
Perlから話が逸れたので軌道修正する。rss_stock.cgiは、Perlモジュールを必用とするuse記述があり、そこでurl_getを要求すると定義している。その存在の有無を把握せずに自前のサーバでrss_stock.cgiを実行してみたところ、WebブラウザにはInternal Server Errorが表示された。Webサーバプログラム(Apache)のログには、url_get.pmが見つからんと言う意味合いのエラーメッセージが記録されていた。そこで"url_get"というモジュールについてGoogle先生に相談してみたのだが、どうもこのケースに該当する情報が見つからない。"url_get.pm"とすると一件も見つからないのだ。これは抜け出る事が出来ない迷路にはまったのではないかと、昨夜ようやく気づいたのだ。
それで、ダメもとでio氏のBlogにトラックバック&コメントをしておいたのだが、今日、嬉しい事にコメントをいただき、"url_get"というスクリプトが、io氏の自家製だという事を知る事が出来たのだ。ご厚意で"url_get"のソースも早速公開して下さっている。
そう言う流れで、早速昨夜の続きを、と思いソースをコピペしつつ眺めてみたが、やはり良く分からない。分かるのはuse記述で何というモジュールが必用なのかだけだ。ぶっちゃけ私の現時点のスキルはその程度である。ファイル名は"url_get.pm"として、"rss_stock.cgi"と同じディレクトリに置いた。
動作環境は、Vine Linux 3.2 FTP版でフルインストール状態だ。普段は最小インストールにするのだが、Perlモジュールが足りないとかで躓くのを恐れて全て入れてみた。とにかく自前の鯖で動くのを確認するのが一番急ぐ改題だ。ちなみにマシンは我が家で最速のCPUを実装したThinkPad X31である。Linuxカーネル2.4系のVine Linux 3.2は流石にこのハードウェア環境では小気味良く動く。これでコンパイル処理なんかもイイ感じで進められるはずだ。
しかし、昨夜と状況は変わらない。WebブラウザにはInternal Server Errorが表示され、Apacheのログには、"url_get.pm"が見つからんうんぬんという意味合いと取れる英語が記録されている。
だめもとで、"url_get.pm"を"url_get.pl"としてみたが変化は無い。Apacheのログから推測すると、Perlは明らかに"url_get.pm"を探しており、それが見つからないとApacheに報告しているんだと思う。なので"url_get.pl"ではなく、"url_get.pm"としなくてはならないのだろうという想像は私にもつく。
さて一体、どこにその"url_get.pm"というPerlモジュールを配置すれば良いのだろうか?どうしたらPerlが"url_get.pm"の在処を認識してくれるのだろうか?この観点からGoogle先生に聞いてみたのだが、有力な情報は見つけられない。
という事で9割方愚痴の様な内容になったが、今日やってみた事、疑問に思った事を記してみた。出来ればio氏にも初心者が落ちる落とし穴を知って頂きたいので、今日もトラックバックを打たせていただくことにする。余りにも低レベルで恥ずかしい限りだが..
ああ、自分にはプログラミングは無理なんだなぁと、つくづく感じる。モノクロMacの時代から何度プログラミングで挫折しただろう。どうもプログラミングとなると、苦手意識が出てくる。どうやらトラウマになっているようだ。何とかして克服したい。あんまり思い詰めると憂鬱になりそうだから今日はこれまでにしようっと。


コメント