作者: INABA HITOSHI
日時: 2010/2/20(15:23)
稲葉 準です。
 
藤岡さんに Sjis ソフトウェアを使ってもらえるとは嬉しい限りです。
 
CGIということは何らかのサーバOSがあって、何らかのWEBサーバがインストール、
設定されているのだと思いますが、私はまったく詳しくないです。
(むしろ教えてもらいたい位です。)
 
でも PHP の(つまりPerl4の :P)使い勝手を取り戻したい気持ちはあるので自分に
できることはしたいと思っています。
 
CGI スクリプトの中で直に "use Sjis;" できるようにするのはちょっと先の目標
にすることにして、README の Usage: B のように
 
perl Sjis.pm CGI_script.cgi> Escaped_CGI_script.cgi
 
として、Apache で実行するのは Escaped_CGI_script.cgi にする、という
解決策はどうでしょうか?(確認はしていませんが)
実行時には "use Esjis;" されるので Esjis.pm が必要です。
 
> 一つ目、次のようなCGIスクリプトを書いてWindows上(Perl5.10/Apache2.2)で
> 実行するとブラウザが表示する前に一瞬コマンドプロンプトが立ち上がります。
> これは動作のために必要なのでしょうか。
 
必然性はないので、コマンドプロンプトが立ち上がらないようにしたいです。
 
> 二つ目、上記の問題と絡むのではと思うのですが、@niftyのhomepageサービス
> はSolarisの5.005_03のPerlが動いていますが、Sjis.pmが5.005でも動くという
> ことなので、@niftyホームページで上記CGIを動作させたいと思ったのですが、
> 次のようなエラーになります。(Windows上のCGIで5.10と同様に5.005_03でも動
> 作します。)
> -----
> 実行エラー
> 
> CGIの実行時にエラーが発生しました 。 
> -----

(想像ですみませんが)
 
"use Sjis;" すると実行しているスクリプトのあるディレクトリに、拡張子 .e を
付加したエスケープ後のスクリプトを作ろうとして「新規書込みモード」でファイル
をオープンしようとします。
 
  sysopen($fh, "$filename.e", O_WRONLY | O_TRUNC | O_CREAT)
   or croak "$__FILE__: Can't open file: $filename.e";

もしそのディレクトリにCGIスクリプトによる書き込みが許可されていないならば、
croak によって die してしまいます。
 
# 間違っていたらすみません
 
[TSabc:778] 藤岡和夫さんwrote:
> Access to older versions across all platforms
> できるのはBusiness Edition以上ということ^^;)
> jperlに必要なAPi522e.exeにアクセスできなくなっている・・・うーむ。
 
Business Edition $999/server/year なり、と。
(これってカナダドルですかね?)
 
Sjis.pm がブリッジする片側の岸なので、できれば無料だといいですね。
 
# まだ渡り切っていない難民がいるので ;P
 

上記まで至らず Hotmail 上で改行コードに苦戦している稲葉より

> Date: Sat, 20 Feb 2010 13:43:11 +0900
> From: kazuf@...
> Subject: [TSperl:906] Sjis.pmの動作する環境や条件について
> To: TSperl@...
> On Sat, 21 Nov 2009 01:46:05 +0900
> INABA HITOSHI <hinaba@...> さんwrote:
>> 
>> 稲葉です。
>> 
>> 「はじめてのPerl 第5版」を参考にして、Perl5.10への対応を強化した
>> Sjis ver.0.44 を CPAN に載せました。
> 
>  毎度お世話になります。APi522e.exeへのアクセスが制限されたので、再配布
> の依頼のメールを書いてはみたものの発展的な話にはならないので、取り敢えず
> 置いておいて、私自身はSjis.pmに本格的に舵を切っていこうと考えました。よ
> ろしくお願いします。
> 
>  それで質問があります。
> 
>  一つ目、次のようなCGIスクリプトを書いてWindows上(Perl5.10/Apache2.2)で
> 実行するとブラウザが表示する前に一瞬コマンドプロンプトが立ち上がります。
> これは動作のために必要なのでしょうか。
> 
> -----
> #!/Perl5.10/bin/perl
> use Sjis;
> print "Content-type: text/html; charset=SHIFT_JIS\n\n";
> print "<html>\n<body>\n";
> print "<H1>惑星ソラリスに今日、十月十日に着陸した。ハローワールド!</H1>\n";
> print "</body>\n</html>\n";
> -----
>  二つ目、上記の問題と絡むのではと思うのですが、@niftyのhomepageサービス
> はSolarisの5.005_03のPerlが動いていますが、Sjis.pmが5.005でも動くという
> ことなので、@niftyホームページで上記CGIを動作させたいと思ったのですが、
> 次のようなエラーになります。(Windows上のCGIで5.10と同様に5.005_03でも動
> 作します。)
> -----
> 実行エラー
> 
> CGIの実行時にエラーが発生しました 。 
> -----
> 
>  よろしくお教えください。
> 
> 藤岡 和夫
> kazuf@...
> 日曜プログラマのひとりごと http://homepage1.nifty.com/kazuf/renewal.html 		 	   		  
_________________________________________________________________
USBメモリ代わりにお使いください。無料で使える25GB。
http://skydrive.live.com/?showunauth=1&mcid=HomeliveMerchBox1