プログラム質問箱一括表示
[表示範囲:97〜196][スレッドモード]


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mxa.meshnet.or.jp>
Subject: Re: 圧縮ファイルをダウンロードさせる方法を教えて下さい
Date: 1996/10/10 00:37:08
Reference: mesh.program/00096

10月9日に、うにさんは書きました。

><a href="">でダウンロードさせるシステムができるようなのですが、
>hoge.gzみたいにしたファイルを<a href="">でダウンロードさせようとしても
>ヘンな文字化けがでてくるだけでダウンロード用になりません
>
リンクをクリックした時には、サーヴァから渡される MIME type に従って動作が
決定されます。また、サーヴァは CGI などでない限り、ファイルの拡張子に基づいて
MIME type を決めます。この拡張子から MIME type への変換は、通常サーヴァの
MIME設定ファイル (mime.types と言う名前のことが多い) に書かれています。

さて、それでは .gz に関する MIME type はどうなっているか?と言うことですが、
これはサーヴァによってまちまちなので、サーヴァの設定ファイルを見なければ
分かりません。

ただし、この頃は .gz は Content-type: を決めず、Content-encoding: を x-gzip に
するだけで、.gz を取った時のファイル名で Content-type: を決める、と言うのが
主流のような気がします。つまり gzip の圧縮はしてもしなくてもブラウザの
ダウンロード動作は変わらない、と言ったものです。
# この辺の設定がどうなっているかは、お使いのサーヴァ管理者に尋ねるか、
# サーヴァの設定ファイルを読んで下さい。

さて、hoge.gz で文字化けになる、との事ですが、hoge.mid.gz と言う名前にしても
ダメでしょうか? 通常 .mid とか .midi は audio/midi になっていることが多いと
思うので、正常にブラウザ側の MIDI ファイル処理に入ると思います。

# この辺は、実際にサーヴァを見てみないと何とも言えない所ですが、
# おかしい動作をするようなら、サーヴァの管理者にアピールして、
# 正しい MIME type を設定してもらうのが良いのではないでしょうか?


[RE] フォロー記事投稿 記事のキャンセル
From: 楠 哲士 <a9011443@cfi.waseda.ac.jp>
Subject: Re: 圧縮ファイルをダウンロードさせる方法を教えて下さい
Date: 1996/10/10 20:34:39
Reference: mesh.program/00097

10月10日に、にあさんは書きました。
># この辺は、実際にサーヴァを見てみないと何とも言えない所ですが、
># おかしい動作をするようなら、サーヴァの管理者にアピールして、
># 正しい MIME type を設定してもらうのが良いのではないでしょうか?

まったくそうですね。(またcup.comだな。ここは自分でMIMEの設定を追加で
きる。) でも廃人は

<a href="hoge.cgi">hoge.gz</a>

#!/bin/sh
echo "Content-type: application/x-gzip"
echo "Content-Disposition: attachment; filename=hoge.gz"
echo ""
cat hoge.gz

なんてことをするのかな? これはサーバーへの負荷が高いのだろうか?

なお、Content-Dispositionを認識しないブラウザーもあるらしいから、念の
ため <a href="hoge.cgi/hoge.gz">hoge.gz</a> と呼ぶ。/hoge.gzの部分は
ダミー。しかしこれはサーバーのバグ依存なのだろうか?

ブラウザー依存でいいなら
<meta http-equiv="refresh" content="1; http://www.cup.com/uni/hoge.gz">
とも書けるらしい。しかもこれだとサーバーの負荷が軽くなるとか聞いたが、
NPH相当ということ?


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mxa.meshnet.or.jp>
Subject: Re: 圧縮ファイルをダウンロードさせる方法を教えて下さい
Date: 1996/10/10 22:26:28
Reference: mesh.program/00098

10月10日に、楠 哲士さんは書きました。
><a href="hoge.cgi">hoge.gz</a>
>
>#!/bin/sh
>echo "Content-type: application/x-gzip"
>echo "Content-Disposition: attachment; filename=hoge.gz"
>echo ""
>cat hoge.gz
>
>なんてことをするのかな? これはサーバーへの負荷が高いのだろうか?
>
ほう、Content-Disposition: なんてものがあるのですか。
見た所、便利そうですが、HTTP/1.0HTTP/1.1 どちらの規格にも見当たらないですね。

CGIでファイルを出力すると、ダウンロード時のファイル名が CGI名になってしまうのが
難点でしたので、Content-Disposition: が使えると便利ですね。

サーヴァ負荷と言うことでは、CGI実行に1プロセス、cat実行に1プロセス消費するので、
単なるリンク(HTMLのみ)に比べれば負荷をかけている、とは言えますね。
まあ、実行される頻度との兼ね合いでしょうか。

>なお、Content-Dispositionを認識しないブラウザーもあるらしいから、念の
>ため <a href="hoge.cgi/hoge.gz">hoge.gz</a> と呼ぶ。/hoge.gzの部分は
>ダミー。しかしこれはサーバーのバグ依存なのだろうか?
>
なるほど、これはアイデアですね。
CGIに対するPATH変数は、ブラウザから見ればコンテンツと見分けが付かないですから
ダウンロードされるファイル名はPATH変数のそれになるわけですか。

サーヴァのバグ依存と言うわけではなくれっきとした機能ですが、PATH変数は全ての
サーヴァで利用できるわけではないですから、必ず使えるわけではないですね。
ただし、Content-Disposition: の様にブラウザ依存ではないですら、サーヴァが
対応していれば必ず使えるわけで、こちらの方が安心ですね。

>ブラウザー依存でいいなら
><meta http-equiv="refresh" content="1; http://www.cup.com/uni/hoge.gz">
>とも書けるらしい。しかもこれだとサーバーの負荷が軽くなるとか聞いたが、
>NPH相当ということ?
>
これは単に自動でペーヂを移っているだけですから、CGIで Location: をしているのと
同じで、手動リンクと同じ MIME type を出力するはずです。


[RE] フォロー記事投稿 記事のキャンセル
From: 楠 哲士 <a9011443@cfi.waseda.ac.jp>
Subject: Re: 圧縮ファイルをダウンロードさせる方法を教えて下さい
Date: 1996/10/11 00:24:42
Reference: mesh.program/00099

10月10日に、にあさんは書きました。
>ほう、Content-Disposition: なんてものがあるのですか。
>見た所、便利そうですが、
>HTTP/1.0、HTTP/1.1どちらの規格にも見当たらないですね。

RFC1806が「Communicating Presentation Information in Internet 
Messages: The Content-Disposition Header」という偉そうなものになってます。


>CGIに対するPATH変数は、ブラウザから見ればコンテンツと見分けが付かないですから
>ダウンロードされるファイル名はPATH変数のそれになるわけですか。
>
>サーヴァのバグ依存と言うわけではなくれっきとした機能ですが、PATH変数は全ての
>サーヴァで利用できるわけではないですから、必ず使えるわけではないですね。
>ただし、Content-Disposition: の様にブラウザ依存ではないですら、サーヴァが
>対応していれば必ず使えるわけで、こちらの方が安心ですね。

CGIへのPATH変数なのですか? 僕のmsin.htmlに誰かがhttp://www.cup.com/negi/msin.html/
という形式でリンクを張ったものだから、相対リンクが切れてmsin.htmlから余所へ
「飛べない」との苦情は来るわ、アクセスログは汚くなるわで迷惑(^o^) それで気
付いたのですが、CGIでない普通のページにたいしてmsin.html/hoge.lzhのように
「PATH変数」を付けても少なくともApache 1.1.1では余分な部分は無視して返せる
ページ?を返してくれるようです。msin.html/hoge.lzh/hoge2.gzとしたらどうな
るだろう?(^o^) あとで試そう。


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mxa.meshnet.or.jp>
Subject: Re: 圧縮ファイルをダウンロードさせる方法を教えて下さい
Date: 1996/10/11 01:23:51
Reference: mesh.program/00100

10月11日に、楠 哲士さんは書きました。

>>ほう、Content-Disposition: なんてものがあるのですか。
>>見た所、便利そうですが、
>>HTTP/1.0、HTTP/1.1どちらの規格にも見当たらないですね。
>
>RFC1806が「Communicating Presentation Information in Internet 
>Messages: The Content-Disposition Header」という偉そうなものになってます。
>
ははぁ、RFCになっていたのですか。(^^ゞ
# RFC チェックしてないからな〜 手元には70チョットしか持ってきてないし...
# ま、どうせ読んでないから、幾つ持ってても同じだが。(爆)

メールでマルチメディアメッセーヂをやり取りする時に使うオプショナルヘッダとして
考えられたみたいですね。チョット本来の目的とは違う気もしますが、みんなが
使いはじめると HTTP にも取り込まれるのかしらん。
# HTML3.2の例もあるし。(^^;;


[RE] フォロー記事投稿 記事のキャンセル
From: うた <t94051tu@sfc.keio.ac.jp>
Subject: Re: flockのオペレーション
Date: 1996/10/19 04:49:55
Reference: mesh.program/00088

うたです。

>6と言うのは (2 | 4) でして、記号で書くと (LOCK_EX | LOCK_NB)、つまり
>排他的ロック、かつ、非ブロック、と言うことになります。
>こうしておくと、排他的ロックが出来ない時には待たずにエラーを返してくれるので
>ロック待ちのプロセスが溜まっていくような事故が防げます。

ふむふむ。なるほど。わかりましたです。たぶん。
ありがとうございました。
あ、それから、flockをサポートしてないマシンってどういうマシンなのですか?
調べる方法がわかりませんです。
素人なので教えてくださいです。
manコマンドでは、一応、きちんとflockのマニュアルがあります。
osはsparc-sun-solaris2.4ですが、あまり関係ない?

なんか、まだ、調べきってないのですが、
あるスクリプトを移植というか、
それは、プロセス間通信のプログラムなのですが、サーバーの設定をかえてみたところ、
flockの調子が悪くなってしまって、、、
もしかしたら、サポートしてないのかなあ、、と思いまして。。

教えて下さい。
お願いします。。


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mxa.meshnet.or.jp>
Subject: Re: flockのオペレーション
Date: 1996/10/20 12:16:52
Reference: mesh.program/00103

10月19日に、うたさんは書きました。

>あ、それから、flockをサポートしてないマシンってどういうマシンなのですか?
>
主に System V 系のマシンですね。

>manコマンドでは、一応、きちんとflockのマニュアルがあります。
>osはsparc-sun-solaris2.4ですが、あまり関係ない?
>
ならあるはずですね。(^^)

>あるスクリプトを移植というか、
>それは、プロセス間通信のプログラムなのですが、サーバーの設定をかえてみたところ、
>flockの調子が悪くなってしまって、、、
>
もし perl が flock() をサポートしていなければ文句を言うので、エラーにならない
ならサポートしてるはずです。ただ、flock() は同じシステム内でのロックなので、
たしか、NFS ファイルに対して違うシステム間でロックする用途には使えないです。
そう言う用途には fcntl() を使う事になります。

# 移植元のシステムの perl が、HP-UX みたいに fcntl() で flock() をエミュレートする
# タイプだったのでたまたま使えてた、なんて事は... 無いか。(^^;;


[NEW] フォロー記事投稿 記事のキャンセル
From: なおき@あいちねっと <naoki@aichinet.or.jp>
Subject: なんか変?
Date: 1996/10/19 08:31:10

あのー会議室選択の「プログラム質問箱」の最新日付が最近おかしいのでは?

今僕が投稿するとおかしくなくなっちゃうかもしれないけど。
10/11までの投稿しかないのに会議室選択の最新日付は今日の日付になって
赤くなってるんですよね。にあさん、これって・・・!!。


[RE] フォロー記事投稿 記事のキャンセル
From: しまぼけ <simaboke@ppp.bekkoame.or.jp>
Subject: Re: なんか変?
Date: 1996/10/19 10:05:42
Reference: mesh.program/00104

10月19日に、なおき@あいちねっとさんは書きました。

>10/11までの投稿しかないのに会議室選択の最新日付は今日の日付になって
>赤くなってるんですよね。にあさん、これって・・・!!。

別の記事にフォローがついてます。
うたさんが4時間ほど前に投稿しているからでしょ。(^^)/


[RE] フォロー記事投稿 記事のキャンセル
From: NK <beatbase@mxb.meshnet.or.jp>
Subject: Re: なんか変?
Date: 1996/10/19 13:26:03
Reference: mesh.program/00104

キャンセル処理をした場合でも日付は更新されるので、
新しい投稿がないのに日付が赤い場合もあります。
これは、前にもどこかで話題になったんですけど発見
できませんでした。(^^;)


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mxa.meshnet.or.jp>
Subject: キャンセル時の日付アップデイト
Date: 1996/10/20 12:22:22
Reference: mesh.program/00106

10月19日に、NKさんは書きました。

>キャンセル処理をした場合でも日付は更新されるので、
>新しい投稿がないのに日付が赤い場合もあります。
>これは、前にもどこかで話題になったんですけど発見
>できませんでした。(^^;)
>
前にまじんさんの会議室で話題が出ていたので、此処でもチョットふれましたが、
結局、色々考えた末、キャンセル時にはアップデイトしない、というのは止めました。(^^;;

# キャンセルで一番多いのは、最新記事の修正で、その時には記事を出した段階で
# アップデイトされてしまうので、キャンセル時だけ更新しないようにしても無意味。
# キャンセルに伴って最新記事の日付が遡った時に、日付を戻すのも不自然、と言うことです。(^^;


[RE] フォロー記事投稿 記事のキャンセル
From: まじん <majin@mxp.meshnet.or.jp>
Subject: Re: キャンセル時の日付アップデイト
Date: 1996/10/20 16:59:21
Reference: mesh.program/00108

10月20日に、にあさんは書きました。

>10月19日に、NKさんは書きました。
>
>>キャンセル処理をした場合でも日付は更新されるので、
>>新しい投稿がないのに日付が赤い場合もあります。
>>これは、前にもどこかで話題になったんですけど発見
>>できませんでした。(^^;)
>>
>前にまじんさんの会議室で話題が出ていたので、此処でもチョットふれましたが、
>結局、色々考えた末、キャンセル時にはアップデイトしない、というのは止めました。(^^;;
>
># キャンセルで一番多いのは、最新記事の修正で、その時には記事を出した段階で
># アップデイトされてしまうので、キャンセル時だけ更新しないようにしても無意味。
># キャンセルに伴って最新記事の日付が遡った時に、日付を戻すのも不自然、と言うことです。(^^;

なるほど、そういう訳で今回のバージョンアップに入ってなかったのですね。
となれば、記事がないのに、日付が更新される件は、利用者用FAQの方に書き加えておきますね。


[NEW] フォロー記事投稿 記事のキャンセル
From: こじろぉ <tmekata@ns1.kyotec.co.jp>
Subject: 簡単なアクセスカウンタ
Date: 1996/10/25 19:31:20

簡単なアクセスカウンタをPerlで作ってみようと思ってるんですが、
(いや、にあさんに対抗しようとかじゃないですよ。勉強です)(^^;

ファイルへのアクセス方法なんかはわかったのですが、
カウンタの画像を表示するにはどうしたらいいんでしょ?

PerlからIMGタグをはけばいいのでしょうか?
その場合、呼び出すHTML側はどのように記述すれば良いのでしょうか?

よろしく御指導くださいませ。


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mxa.meshnet.or.jp>
Subject: Re: 簡単なアクセスカウンタ
Date: 1996/10/28 04:12:22
Reference: mesh.program/00110

10月25日に、こじろぉさんは書きました。

>PerlからIMGタグをはけばいいのでしょうか?
>その場合、呼び出すHTML側はどのように記述すれば良いのでしょうか?
>
これは、サーヴァが SSI(=Server Side Include, Parsed HTML) をサポートしているか
どうかに拠りますね。SSI が使えれば、画像を置きたい所に SSI を置いておき、
perl では <IMG SRC=...> を生成すれば良いです。

SSIが使えない場合には、呼び出し側は <IMG SRC=...> で書いておき、
perl では直接画像を出力することになりますね。もちろん、

  Content-Type: image/gif

と言うヘッダを最初に出力するのも忘れずに。
実際のスクリプトについては、記事mesh.forum/00043を参考にして下さい。


[RE] フォロー記事投稿 記事のキャンセル
From: こじろぉ <tmekata@ns1.kyotec.co.jp>
Subject: Re: 簡単なアクセスカウンタ
Date: 1996/10/28 10:06:30
Reference: mesh.program/00111

10月28日に、にあさんは書きました。

>これは、サーヴァが SSI(=Server Side Include, Parsed HTML) をサポートしているか
>どうかに拠りますね。SSI が使えれば、画像を置きたい所に SSI を置いておき、
>perl では <IMG SRC=...> を生成すれば良いです。
>
>SSIが使えない場合には、呼び出し側は <IMG SRC=...> で書いておき、
>perl では直接画像を出力することになりますね。もちろん、
>
>  Content-Type: image/gif
>
>と言うヘッダを最初に出力するのも忘れずに。

ご回答どうもありがとうございますぅ・・・

NTのIISではSSIはサポートされてないようなので(?)
呼び出し側HTMLを<IMG SRC="・・・.cgi>にして
Perlを「PRINT "Content-Type: image/gif"」を付けて
(NTにはCATコマンドは無いのでTYPEコマンドで)
やれば、出ました♪(^^)すごいや

ところがもう一つ問題がありまして・・・(^^;;;
数字の0〜9までのGIFファイルを用意してるんですが
1回の<IMG SRC="・・・.cgi>での呼び出しで
Perl側で複数の数字GIFファイルを連結して1つのGIFファイルに
しないといけないんですよね?
(ただ複数GIFファイルをTYPEするだけじゃ
最初の1画像しか表示されない)

これは何か解決方法があるんでしょうか?
GIFの勉強もしないといけないんでしょうか???(^^;;;


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mxa.meshnet.or.jp>
Subject: Re: 簡単なアクセスカウンタ
Date: 1996/10/28 19:32:52
Reference: mesh.program/00112

10月28日に、こじろぉさんは書きました。

>ところがもう一つ問題がありまして・・・(^^;;;
>数字の0〜9までのGIFファイルを用意してるんですが
>1回の<IMG SRC="・・・.cgi>での呼び出しで
>Perl側で複数の数字GIFファイルを連結して1つのGIFファイルに
>しないといけないんですよね?
>
普通は桁数だけ <IMG SRC="..."> を書くようですね。
ただ、これだと桁上がりの際のロック処理などが結構面倒になりそうですね。
# やったことは無いので良く分かりませんが。(^^;

>これは何か解決方法があるんでしょうか?
>GIFの勉強もしないといけないんでしょうか???(^^;;;
>
npc.cgi みたいに全部の桁をまとめた画像にすることも考えられます。
もっとも、その時は GIF フォーマットについても覚えなくてはなりませんので
面倒ですが。(^^;;

まあ、たぶん、汎用の GIFルーティンかなんかが有るとは思いますが。
# 探したこと無いので... (^^;;


[RE] フォロー記事投稿 記事のキャンセル
From: こじろぉ <tmekata@ns1.kyotec.co.jp>
Subject: Re: 簡単なアクセスカウンタ
Date: 1996/10/29 10:41:13
Reference: mesh.program/00113

10月28日に、にあさんは書きました。

>npc.cgi みたいに全部の桁をまとめた画像にすることも考えられます。
>もっとも、その時は GIF フォーマットについても覚えなくてはなりませんので
>面倒ですが。(^^;;

やっぱり?・・・(^^;;;;;

npcでもGIFの構造をプログラムで書いてるんですよね?

ひょぇぇぇぇ・・・・・・・つくづく、にあさんってすごい・・・

SSIの使えないIISなんて(ややこしいな)キライだぁぁ(;。;)


[RE] フォロー記事投稿 記事のキャンセル
From: なか <naka-net@mx.biwa.or.jp>
Subject: Re: 簡単なアクセスカウンタ
Date: 1996/10/29 12:52:24
Reference: mesh.program/00114

10月29日に、こじろぉさんは書きました。

>10月28日に、にあさんは書きました。
>
>>npc.cgi みたいに全部の桁をまとめた画像にすることも考えられます。
>>もっとも、その時は GIF フォーマットについても覚えなくてはなりませんので
>>面倒ですが。(^^;;
>
>やっぱり?・・・(^^;;;;;
>
>npcでもGIFの構造をプログラムで書いてるんですよね?
>
>ひょぇぇぇぇ・・・・・・・つくづく、にあさんってすごい・・・
>
>SSIの使えないIISなんて(ややこしいな)キライだぁぁ(;。;)

いつもお世話になっています。
なかです。

CGIスクリプトから利用できるGIF画像合成インターフェース「fly」を
利用すれば実現できるかと思います。
WindowsNT版もあります。

GIF画像合成インターフェース「fly」(Martin Gleeson氏作成)
http://www.unimelb.edu.au/fly/fly.html

「Fly」を利用したCGIスクリプト
http://worldwidemart.com/scripts/counter.shtml


[RE] フォロー記事投稿 記事のキャンセル
From: こじろぉ <tmekata@ns1.kyotec.co.jp>
Subject: GIF画像の合成
Date: 1996/10/30 11:16:13
Reference: mesh.program/00115

10月29日に、なかさんは書きました。

>CGIスクリプトから利用できるGIF画像合成インターフェース「fly」を
>利用すれば実現できるかと思います。
>WindowsNT版もあります。
>
>GIF画像合成インターフェース「fly」(Martin Gleeson氏作成)
>http://www.unimelb.edu.au/fly/fly.html
>
>「Fly」を利用したCGIスクリプト
>http://worldwidemart.com/scripts/counter.shtml

フォローありがとうございます。

さっそく見てみると・・・ひょぇぇぇ英語じゃん(やっぱり?)

がんばって解読してみたんですが、これって(fly)Perlから呼び出して
GIFの絵を描くライブラリですよね?

カウンタ用の数字の画像ファイルは(かんたんな物だけど)用意してるので
それを横並びに結合出来るようなライブラリがあればいいのになぁ・・・

やっぱり、GIFの構造を理解して、
用意した画像ファイルを変数に読み込んで、プログラム上で結合する
ような処理をしないといけないのかなぁ・・・・・


[RE] フォロー記事投稿 記事のキャンセル
From: なか <naka-net@mx.biwa.or.jp>
Subject: Re: GIF画像の合成
Date: 1996/10/30 18:05:38
Reference: mesh.program/00116

10月30日に、こじろぉさんは書きました。

>さっそく見てみると・・・ひょぇぇぇ英語じゃん(やっぱり?)
>
>がんばって解読してみたんですが、これって(fly)Perlから呼び出して
>GIFの絵を描くライブラリですよね?
>
>カウンタ用の数字の画像ファイルは(かんたんな物だけど)用意してるので
>それを横並びに結合出来るようなライブラリがあればいいのになぁ・・・
>
>やっぱり、GIFの構造を理解して、
>用意した画像ファイルを変数に読み込んで、プログラム上で結合する
>ような処理をしないといけないのかなぁ・・・・・

その通りです。
0から9までのカウンタ表示用画像ファイルを
それぞれ、0.gif、1.gif、2.gif、・・・・・、9.gifというファイル名で
用意しておきます。
また、上記の数字画像ファイルを置くフォルダも変数にしておくと様々な
デザインの数字が利用できるようになります。

結合処理のサンプルプログラムはここにあります。
このページにあるcounter.plというスクリプトを解読すればよいかと思います。

ps.
にあさんのnpc.cgiも好みの画像ファイルが指定できるようになればうれしいのですが。


[NEW] フォロー記事投稿 記事のキャンセル
From: kiyo <tajima@kyu-dent.ac.jp>
Subject: ローカルアドレスでカウント動作させない方法
Date: 1996/10/31 07:51:06

質問です。
特定のところからアクセスされた場合に動作を変える方法が設定ファイルにありますが、このアドレスでローカルでも対応できる要の方法をご存じであれば教えてください。


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mxa.meshnet.or.jp>
Subject: Re: ローカルアドレスでカウント動作させない方法
Date: 1996/10/31 23:37:42
Reference: mesh.program/00118

10月31日に、kiyoさんは書きました。

>特定のところからアクセスされた場合に動作を変える方法が設定ファイルにありますが...
>
と言うことで、npc.cgiネタの様なので「npc.cgiの部屋」に振りますね。


[NEW] フォロー記事投稿 記事のキャンセル
From: なおき <naoki@aichinet.or.jp>
Subject: \マークでエスケープする文字について
Date: 1996/11/02 18:26:53

お久しぶりです。

\マークでエスケープする文字一覧表なんてのはありますか?
そういうのがあったら便利なんだけどなぁ。
もしかしてもう話題になったかもしれませんけど・・・。

全ページ検索機能が早くできないかなぁ・・・にあさん。^^;


[RE] フォロー記事投稿 記事のキャンセル
From: Yasu.F <yasuf@ariake.or.jp>
Subject: Re: \マークでエスケープする文字について
Date: 1996/11/02 20:45:28
Reference: mesh.program/00120

11月2日に、なおきさんは書きました。

>お久しぶりです。
>
>\マークでエスケープする文字一覧表なんてのはありますか?
>そういうのがあったら便利なんだけどなぁ。
>もしかしてもう話題になったかもしれませんけど・・・。

DOSとかからなら、
($_ = shift) =~ s/\\/\\\\/g; print;
で、コマンドラインの引数に表記したい文字列を渡してやれば エスケープされた文字列が出力されると思います。 jperlをお使いなら-Llatinをオプションに指定して下さい。 面倒ならこれとか^^;<使えん… # ホームページのURLが変更になりました_(..)_

[RE] フォロー記事投稿 記事のキャンセル
From: なおき <naoki@aichinet.or.jp>
Subject: Re: \マークでエスケープする文字について
Date: 1996/11/05 12:18:51
Reference: mesh.program/00121

11月2日に、Yasu.Fさんは書きました。

>11月2日に、なおきさんは書きました。
>
>>お久しぶりです。
>>
>>\マークでエスケープする文字一覧表なんてのはありますか?
>>そういうのがあったら便利なんだけどなぁ。
>>もしかしてもう話題になったかもしれませんけど・・・。
>
>DOSとかからなら、
>
>($_ = shift) =~ s/\\/\\\\/g; >print; >
>で、コマンドラインの引数に表記したい文字列を渡してやれば >エスケープされた文字列が出力されると思います。 >jperlをお使いなら-Llatinをオプションに指定して下さい。 > >面倒ならこれとか^^;<使えん… > ># ホームページのURLが変更になりました_(..)_ そこに行ってやってみたんだけどよく分からなかった。 僕が知りたいのは 「結構\ですが」「そのまま表\示」(にあさんのプログラムの抜粋) の「で」「示」とかいうふうにエスケープする文字が知りたかったんです。 よく使われる文字でそうやってエスケープする文字一覧などがあったら と思ったわけです。 どうもすいません。よろしくお願いします。

[RE] フォロー記事投稿 記事のキャンセル
From: NK <beatbase@mxb.meshnet.or.jp>
Subject: Re: \マークでエスケープする文字について
Date: 1996/11/05 16:00:53
Reference: mesh.program/00122

なおきさん、こんにちは。

例えば、「表示」の文字化けは「表」の文字の中に含まれる「\」が後ろの「示」と
並んだときにエスケープシーケンスとなるために起こります。それを無効にするため
「表」の後ろにもう一つ「\」を足して、正しく「\」を表示させているのです。
つまり原因は「表\示」の「示」ではなくて「表」の方にあるのです。

後ろに「\」をつけないと文字化けやエラーになる可能性があるのは、以下の文字です。

噂浬欺圭構蚕十申曾箪貼能表暴予禄兔喀媾彌拿杤歃濬畚秉綵臀藹觸軆鐔饅鷭


[RE] フォロー記事投稿 記事のキャンセル
From: なおき <naoki@aichinet.or.jp>
Subject: Re: \マークでエスケープする文字について
Date: 1996/11/05 18:02:07
Reference: mesh.program/00123

11月5日に、NKさんは書きました。

>なおきさん、こんにちは。
>
>例えば、「表示」の文字化けは「表」の文字の中に含まれる「\」が後ろの「示」と
>並んだときにエスケープシーケンスとなるために起こります。それを無効にするため
>「表」の後ろにもう一つ「\」を足して、正しく「\」を表示させているのです。
>つまり原因は「表\示」の「示」ではなくて「表」の方にあるのです。
>
>後ろに「\」をつけないと文字化けやエラーになる可能性があるのは、以下の文字です。
>
>噂浬欺圭構蚕十申曾箪貼能表暴予禄兔喀媾彌拿杤歃濬畚秉綵臀藹觸軆鐔饅鷭

はぁ、すごいですね。ありがとうございます。これをコピーしときます。
ひらがなはないんですね。意外にも。

NKさんのページ見ました。なんかすごい迫力のあるページですね。
あの立体文字は何で作ってるんですか?
それから、ネット上に心休まる音楽集なんてのは知りませんか?
アルファ波の出るようなやつ
知ってたら教えてください。


[RE] フォロー記事投稿 記事のキャンセル
From: NK <beatbase@mxb.meshnet.or.jp>
Subject: Re: \マークでエスケープする文字について
Date: 1996/11/05 23:53:14
Reference: mesh.program/00124

11月5日に、なおきさんは書きました。

>ひらがなはないんですね。意外にも。

そうですね。他には「@」の文字コードを含む漢字なども使う場所によっては
ひっかかったりします。この場合は漢字の前に「\」をつけます。

>NKさんのページ見ました。なんかすごい迫力のあるページですね。
>あの立体文字は何で作ってるんですか?

MacのRayDream Studioです。ちょっとマイナーな3Dイラストソフトです。

>それから、ネット上に心休まる音楽集なんてのは知りませんか?
>アルファ波の出るようなやつ
>知ってたら教えてください。

うーん、やっぱりコンピュータで音楽やってる人が多いのでテクノとかが
主流なんですよね。今度探してみます。

って、脱線しましたね。失礼しました。


[NEW] フォロー記事投稿 記事のキャンセル
From: なおき <naoki@aichinet.or.jp>
Subject: クッキーについて
Date: 1996/11/05 18:23:03

クッキーの簡単なやり方教えてくれる人いませんか〜?
クッキーが何かは最近ようやく分かってきたんですが、
実際どうすればcookies.txtに書き込まれるのか
どうやって読み出すのか分かりません。
ほんのちょっときっかけだけでも分かるとうれしいのですが。

そうすればあとはにあさんのプログラムを追いかけながら
見ていけば分かると思うから。

いつも「教えて」ばかりで

すいません。


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mxa.meshnet.or.jp>
Subject: Re: クッキーについて
Date: 1996/11/05 19:58:08
Reference: mesh.program/00126

11月5日に、なおきさんは書きました。

>クッキーの簡単なやり方教えてくれる人いませんか〜?
>
あたしはいつも Netscape社のペーヂを参照してますよ。
Cookie は特に複雑な機構と言うわけではないので、これで十分かと思います。
# どこかに日本語のペーヂもあったな... 

あと、JavaScript で使う場合なら、こちらの Netscape社のペーヂがありますね。
# まだ扱ったことはないけど。


[RE] フォロー記事投稿 記事のキャンセル
From: なおき <naoki@aichinet.or.jp>
Subject: Re: クッキーについて
Date: 1996/11/05 20:11:14
Reference: mesh.program/00127

11月5日に、にあさんは書きました。

>11月5日に、なおきさんは書きました。
>
>>クッキーの簡単なやり方教えてくれる人いませんか〜?
>>
>あたしはいつも Netscape社のペーヂを参照してますよ。
>Cookie は特に複雑な機構と言うわけではないので、これで十分かと思います。
># どこかに日本語のペーヂもあったな... 

英語はちょっと分からないなぁ。日本語のページ思い出してぇ。
そのネットスケープのページを日本語翻訳でやったけど全然わけわからんです。

>
>あと、JavaScript で使う場合なら、こちらの Netscape社のペーヂがありますね。
># まだ扱ったことはないけど。

これまた英語だぁ。英語は昔好きだったけど、今はとんと忘れてもうたから。
なかなか、訳してる暇もないし。ゆっくりやれば分かるけど。

そうそう、会議室のプログラム毎晩見てます。(読んでない?)
毎日眺めてるだけでもちょっとづつは分かってくると信じて。
forum.plはいっぱいサブルーチンがつまってていいですねぇ。
こっから攻めようと最近思ってます。

それじゃ。また。(今日はよく投稿する日だ)


[RE] フォロー記事投稿 記事のキャンセル
From: なおき <naoki@aichinet.or.jp>
Subject: クッキーの仕方
Date: 1996/11/09 10:26:55
Reference: mesh.program/00128

少しずつですけど
まずはセットクッキーについて

例えばこんなふうに(にあさんのを見ながら)

$output = "Set-Cookie: ";
$output .= "HTTP_USER_AGENT=$ENV{'HTTP_USER_AGENT'}";
$output .= "; REMOTE_ADDR=$ENV{'REMOTE_ADDR'}";
$output .= "; REMOTE_HOST=$ENV{'REMOTE_HOST'}";
$output .= "; SERVER_NAME=$ENV{'SERVER_NAME'}";

print $output;

やってみたんですが$ENV{'HTTP_COOKIE'}には
ナンにも入ってこない。

一回うまく行ったような気がしたんですが(これとは違う記述で)
にあさんのhttp.plをまねてこういうような記述にしてみたんですが・・・。

何が足りないか教えてください。それとも根本的に何か違う?


[RE] フォロー記事投稿 記事のキャンセル
From: Yasu.F <yasuf@ariake.or.jp>
Subject: Re: クッキーの仕方
Date: 1996/11/09 13:56:29
Reference: mesh.program/00130

わたしもCookieは全然使ったことはないんですが^^;

11月9日に、なおきさんは書きました。

>少しずつですけど
>まずはセットクッキーについて
>
>例えばこんなふうに(にあさんのを見ながら)
>
>$output = "Set-Cookie: ";
>$output .= "HTTP_USER_AGENT=$ENV{'HTTP_USER_AGENT'}";
>$output .= "; REMOTE_ADDR=$ENV{'REMOTE_ADDR'}";
>$output .= "; REMOTE_HOST=$ENV{'REMOTE_HOST'}";
>$output .= "; SERVER_NAME=$ENV{'SERVER_NAME'}";
>
>print $output;

1個のSet-Cookie:ヘッダでは1個のデータしか送れないようです
(この辺りNetscape社の文書を読んでもあまりはっきりしない)。
ですから
Set-Cookie: foo=bar Set-Cookie: hoge=uge ...
のようにする必要があります。 # User Agentにはいろんな記号類が含まれることが多いので # ちゃんとエスケープしてやらないといけないでしょう^^; > >やってみたんですが$ENV{'HTTP_COOKIE'}には >ナンにも入ってこない。 一つには、同じCGIから参照したかどうかということがあります。 Set-Cookie:にはpathというパラメータがあり、これが省略 された場合はCookieをセットした時と同じ場所を参照する 時だけそれを返すようになります。これを避けるには、
Set-Cookie: name=value; path=/
のような記述を加えて下さい(別にrootじゃなくてもいいけど)。 もう一つ、expiresがないと、ブラウザを終了した時点で (when user's session endsとある)Cookieは破棄される ようになっています。実際に使う場合はこの設定も必要 になってくるでしょう。値にはCookieを破棄する時刻を 指定します。 > >一回うまく行ったような気がしたんですが(これとは違う記述で) >にあさんのhttp.plをまねてこういうような記述にしてみたんですが・・・。 > >何が足りないか教えてください。それとも根本的に何か違う?

[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mxa.meshnet.or.jp>
Subject: Re: クッキーの仕方
Date: 1996/11/09 17:20:40
Reference: mesh.program/00131

Yasu.Fさんが答えてくれているので補足だけ。
# いつもすいません。(^^) > Yasu.Fさん

11月9日に、Yasu.Fさんは書きました。

>わたしもCookieは全然使ったことはないんですが^^;
>
その割には、しっかり調査は怠りないですね。(^^)

>1個のSet-Cookie:ヘッダでは1個のデータしか送れないようです
>
ですね。

>ですから
>
>  Set-Cookie: foo=bar
>  Set-Cookie: hoge=uge
>    ...
>
>のようにする必要があります。
>
あるいは、

  Set-Cookie: all=foo%3Dbar%26hoge%3Duge

みたいにして、まとめて渡して、後で切り分けることもあります。
# (%3D = '=')、(%26 = '&')

>もう一つ、expiresがないと、ブラウザを終了した時点で
>(when user's session endsとある)Cookieは破棄される
>ようになっています。実際に使う場合はこの設定も必要
>になってくるでしょう。値にはCookieを破棄する時刻を
>指定します。
>
逆にこれを利用して、Cookies の破棄は、NAME、path、domain などは同じで、
expires を過去に (と言っても現在の時間はすぐ過去になるので time で良いが)
してやることによって行ないますね。


[RE] フォロー記事投稿 記事のキャンセル
From: なおき <naoki@aichinet.or.jp>
Subject: Re: クッキーの仕方
Date: 1996/11/10 17:30:09
Reference: mesh.program/00132

11月9日に、にあさんは書きました。

>Yasu.Fさんが答えてくれているので補足だけ。
># いつもすいません。(^^) > Yasu.Fさん
>
>11月9日に、Yasu.Fさんは書きました。
>
>>わたしもCookieは全然使ったことはないんですが^^;
>>
>その割には、しっかり調査は怠りないですね。(^^)
>
>>1個のSet-Cookie:ヘッダでは1個のデータしか送れないようです
>>
>ですね。
>
>>ですから
>>
>>  Set-Cookie: foo=bar
>>  Set-Cookie: hoge=uge
>>    ...
>>
>>のようにする必要があります。
>>
>あるいは、
>
>  Set-Cookie: all=foo%3Dbar%26hoge%3Duge
>
>みたいにして、まとめて渡して、後で切り分けることもあります。
># (%3D = '=')、(%26 = '&')
>
>>もう一つ、expiresがないと、ブラウザを終了した時点で
>>(when user's session endsとある)Cookieは破棄される
>>ようになっています。実際に使う場合はこの設定も必要
>>になってくるでしょう。値にはCookieを破棄する時刻を
>>指定します。
>>
>逆にこれを利用して、Cookies の破棄は、NAME、path、domain などは同じで、
>expires を過去に (と言っても現在の時間はすぐ過去になるので time で良いが)
>してやることによって行ないますね。

Yasu.Fさんに にあさん ありがとうございます。

なるほど! 一回やってみます。

あの〜、expieres てなんですか?(もしかして目茶基本的なことなの?)
どうやってしてするの?

今いろいろパールで実験してるので、ちょくちょく質問させてくださいね。


[NEW] フォロー記事投稿 記事のキャンセル
From: NK <beatbase@mxb.meshnet.or.jp>
Subject: CGIのアップロード
Date: 1996/11/17 19:03:36

こんにちは、NKです。
どうしても自力で解決できないことがおきて困っております。

というのは、うちのうぇぶ会議室拡張機能のページからダウンロードして
下さった方からサーバエラーになってしまい動作しないという報告が何件
か来ているのです。
パーミッションやアップロードのモードなどすべて正しく行なって頂いて
いるのですが・・・。

CGIはうちのページで動作しているものと全く同じものをアップしています。
またエラーになってしまう会議室のsite.plをそのまま使用してうちで動か
しても動作するので会議室の設定の違いによるもではないと思われます。

また、当初アスキーモードでアップして公開したのですが、これをダウン
してまたアップするとFTP で「アスキーモードで転送・・・」という警告
が表示されることがわかりました。このため今あるものは、バイナリモー
ドでアップしてあります。これをアスキーモードでダウンしてアスキーモ
ードでアップすると警告は表示されません。
ちなみに、警告が表示された場合でもうちのページでは正常に動作しました。

サーバの設定の違いが原因の可能性はあるのでしょうか?
archive-ex.cgiが正常に動作することが確認できているのはwww2,www2aです。
サーバエラーが起きることが確認されたのはwww2hです。
unread-ex.cgiについては残念ながらうちのページ以外では動作確認とれてま
せん。www2e,www2hにおいてサーバエラーを確認しています。

結局、疑問点は
 ・人に公開するCGIは何モードでアップすればよいのか?
 ・同じmeshでもサーバによって設定が異なる場合があるのか?
という2点です。FTPソフトはFetch3.0.1です。

もう何がなんだかこんがらがっいる僕に誰かアドバイスを下さい。
よろしくお願いします。


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mxa.meshnet.or.jp>
Subject: Re: CGIのアップロード
Date: 1996/11/17 23:52:57
Reference: mesh.program/00134

11月17日に、NKさんは書きました。

>また、当初アスキーモードでアップして公開したのですが、これをダウン
>してまたアップするとFTP で「アスキーモードで転送・・・」という警告
>が表示されることがわかりました。このため今あるものは、バイナリモー
>ドでアップしてあります。これをアスキーモードでダウンしてアスキーモ
>ードでアップすると警告は表示されません。
>ちなみに、警告が表示された場合でもうちのページでは正常に動作しました。
>
>結局、疑問点は
> ・人に公開するCGIは何モードでアップすればよいのか?
> ・同じmeshでもサーバによって設定が異なる場合があるのか?
>という2点です。FTPソフトはFetch3.0.1です。
>
えーと、まず基本的な所を少し。

NKさんはご存じでしょうけど、改行記号はUnix、Mac、Windows(DOS)の三者でそれぞれ
異なるものを使っています。UnixはLFだけ、MacはCRだけ、WindowsはCRLFのペアです。

ここで、FTPやHTTPでのテキストモード転送と言うのは、この改行記号の変換を自動で行なって
くれるものです。たとえば、Unixのサーヴァ上にあるLFで終端される文字列をMacに持って
くると、自動的にCR終端にされるわけです。これにより、それぞれのマシン上でのテキスト
エディタや行単位の動作をするプログラムで問題なく扱えるわけです。

バイナリモードの転送というのはこれらの処理をいっさい行なわない、文字通りバイナリで
扱う、何の変更も行なわない転送モードです。

さて、NKさんはスクリプトをバイナリモードでアップロードしたそうですので、スクリプトは
NKさんのマシン上での改行コード、つまりMacのCR改行でUnixサーヴァであるMeshの上に
置かれているわけです。

これをダウンロードするとどうなるでしょうか?MeshサーヴァはUnixマシンですから、改行
記号はLFです。ですからLFが現われるまでを1行としますが、残念ながらスクリプトはCR改行
ですからLFは現われません。つまりスクリプトすべてが1行として扱われることになります。

ダウンロードした人がたまたまMacを使っていれば良いのですが、そうでない場合には、たった
1行のスクリプト、それも最初に"#"(コメント記号)がありますから、中身のないコメント
だけのスクリプトとなって「CGI特有のヘッダ出力が無い」と言うサーヴァエラーになるでしょう。

# Macユーザの方もエラーになっているなら、他にも問題があるかもしれません。(^^;;

と言うことで、基本的にスクリプトはテキストモードでアップロードするのが正しいです。
また、スクリプトをダウンロードした方が自分のサーヴァにアップロードする時も、テキスト
モードで行なうのが正しいです。サーヴァからのダウンロードは *.pl の場合、黙っていても
テキストモード(text/plain)になるので心配無いです。

# などと、偉そうなことを言ってますが、自己解凍CGIをダウンロードしてもらう時、最初
# WindowsではTEXTモードしか選べないのに気が付かないで、「常にバイナリモード転送
# して下さい」などと無理を言ってた過去を持つ。(^^;

## UnixのNetscapeは text/plain でも転送モードを選べるので何処でもそうなのかと
## 思っていた。(^^;;


[RE] フォロー記事投稿 記事のキャンセル
From: NK <beatbase@mxb.meshnet.or.jp>
Subject: Re: CGIのアップロード
Date: 1996/11/18 00:28:07
Reference: mesh.program/00135

にあさんレスありがとうございます。

>ダウンロードした人がたまたまMacを使っていれば良いのですが、そうでない場合には、たった
>1行のスクリプト、それも最初に"#"(コメント記号)がありますから、中身のないコメント
>だけのスクリプトとなって「CGI特有のヘッダ出力が無い」と言うサーヴァエラーになるでしょう。

よく分かりました。早速テキストモードでアップしなおしました。

ただ前回書いた、

	archive-ex.cgiが正常に動作することが確認できているのはwww2,www2aです。
	サーバエラーが起きることが確認されたのはwww2hです。
	unread-ex.cgiについては残念ながらうちのページ以外では動作確認とれてま
	せん。www2e,www2hにおいてサーバエラーを確認しています。

の部分はすべてテキストモードでアップしていた時期のものなんです。
実際、まじんさんのページなどでは問題なく動いているので、何の違いでサーバ
エラーになるのか自分には全く分からなくって・・。
試しに自分でもダウンロード&アップロードしたのですが、その時に
226-WARNING! 351 bare linefeeds received in ASCII mode
   File may not have transferred correctly.
というメッセージが返ってきたのでこれが原因かと思いバイナリモードでアップ
しなおしたのです。この対策は問題アリでしたね。(^^;)
でも、メッセージは無視しても問題無いのでしょうか?

いやー、ますます原因がわからなくなってきました。
なにせ自分のページで正常に動いているもんで、どこが悪いのか??
もう一度スクリプトを見直した方がいいかもしれませんね。(^^;;


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mxa.meshnet.or.jp>
Subject: Re: CGIのアップロード
Date: 1996/11/18 12:31:13
Reference: mesh.program/00136

11月18日に、NKさんは書きました。

>いやー、ますます原因がわからなくなってきました。
>なにせ自分のページで正常に動いているもんで、どこが悪いのか??
>もう一度スクリプトを見直した方がいいかもしれませんね。(^^;;
>
スクリプトを読んでみました。(一括表示 archive-ex.cgiの方)

これは Ver1.5ベースの様で、Ver1.5aではスクリプトの最初に必要な、

  $CGIPATH = '.';
  
の様な、CGIディレクトリの指定が有りませんね。
そのため、Ver.1.5a を使っている場合、forum.pl の中でエラーになってしまいます。

$CGIPATH の設定を増やしたら、require の行も、
 
  require "$CGIPATH/forum.pl";
  
としておいた方が良いですね。

また、get_article() 中の open() でのパス指定がチョット足りません。

  open(ARTICLE, "$FORUMPATH/$room/$mes.html") || ...
  
の様に、"$FORUMPATH/" の部分を追加して下さい。

あと、get_article() 中のパターンマッチで使っている /.../s オプションは
perl5 の機能なので、perl4 でも使えるようにするためには、書き換える必要が
有りますね。

# たぶんこれだけだと思うけど。(^^)


[RE] フォロー記事投稿 記事のキャンセル
From: NK <beatbase@mxb.meshnet.or.jp>
Subject: Re: CGIのアップロード
Date: 1996/11/18 17:48:31
Reference: mesh.program/00137

11月18日に、にあさんは書きました。

>スクリプトを読んでみました。(一括表示 archive-ex.cgiの方)

わざわざすみません。とても感謝しております。

なるほど、1.5aと互換性がなかったんですね。(^^;)

早速修正してアップしました。

どうもありがとうこざいました。
これからはお手数かけないようにがんばります。


[NEW] フォロー記事投稿 記事のキャンセル
From: Tora <tora@mxc.meshnet.or.jp>
Subject: smms
Date: 1996/12/02 20:11:37

# こんな内容、ここでいいのかな(^^;

smmsというプログラムご存じの方いらっしゃいますでしょうか?

メールの自動転送とか、簡単なMLとかを作るソフトなんですけど、
どうもうまく動いてくれません。
/etc/aliases を使って、あるアドレスに届いたメールに既存文書
を返信するようにしているつもりなのですが、どうしても、

unknown mailer error (番号失念)

となってしまいます。どなたか、いい知恵をお持ちのかた、教えて下さい。

(Solaris2.4 + perl5.003(?)+smms-1.9+sendmail8.7.?)


[RE] フォロー記事投稿 記事のキャンセル
From: なおき <naoki@aichinet.or.jp>
Subject: Re: smms
Date: 1996/12/06 09:04:47
Reference: mesh.program/00139

12月2日に、Toraさんは書きました。

># こんな内容、ここでいいのかな(^^;
>
>smmsというプログラムご存じの方いらっしゃいますでしょうか?
>
>メールの自動転送とか、簡単なMLとかを作るソフトなんですけど、
>どうもうまく動いてくれません。
>/etc/aliases を使って、あるアドレスに届いたメールに既存文書
>を返信するようにしているつもりなのですが、どうしても、
>
>unknown mailer error (番号失念)
>
>となってしまいます。どなたか、いい知恵をお持ちのかた、教えて下さい。
>
>(Solaris2.4 + perl5.003(?)+smms-1.9+sendmail8.7.?)


違うかもしれませんが、メール送信のプログラムのディレクトリー指定が
ちゃんと指定されてないのではないでしょうか?


[RE] フォロー記事投稿 記事のキャンセル
From: Tora <tora@mxc.meshnet.or.jp>
Subject: Re: smms
Date: 1996/12/09 22:08:35
Reference: mesh.program/00140

12月6日に、なおきさんは書きました。

>>smmsというプログラムご存じの方いらっしゃいますでしょうか?
>>どうもうまく動いてくれません。
>>/etc/aliases を使って、あるアドレスに届いたメールに既存文書
>>を返信するようにしているつもりなのですが、どうしても、
>>unknown mailer error (番号失念)

>違うかもしれませんが、メール送信のプログラムのディレクトリー指定が
>ちゃんと指定されてないのではないでしょうか?

 解決しました。perlのスクリプトをaliasesに指定して、メールを食べさせる物なのですが、愚かなことにdaemonさんに読めないパーミッションにしてしまっていたのが原因でした。どうもお手数おかけしました。


[NEW] フォロー記事投稿 記事のキャンセル
From: なおき <naoki@aichinet.or.jp>
Subject: MSIEですがソース表示が出来ません。
Date: 1996/12/10 21:55:33

ここで聞いていいものか分かりませんが・・・。
どなたか知っているかた教えて下さい。

MSIE3.01でソースの表示が出来ません。
どうすればよろしいでしょうか?
あんまり使わなかったのでよくわからないです。

誰かお助けを!!


[RE] フォロー記事投稿 記事のキャンセル
From: TAD <hotani@mxt.meshnet.or.jp>
Subject: Re: MSIEですがソース表示が出来ません。
Date: 1996/12/11 11:03:34
Reference: mesh.program/00142

こんにちわ、なおきさん。

12月10日に、なおきさんは書きました。

>MSIE3.01でソースの表示が出来ません。
>どうすればよろしいでしょうか?
>誰かお助けを!!

ということですが、
MSIE3.01の日本語版ですよね。
ビルド番号は 4.70.1215 ですか?

私もMSIE3.01使ってますが、前述のような症状はでていませんけど...

もう少し詳しく操作内容を教えてもらえませんか?
先ず、
1.メニューバーの表示(V)からソース表示(C)を選んだ
2.ウィンドウ上で右クリックメニューからソースの表示(V)を選んだ
のどちらですか?


[RE] フォロー記事投稿 記事のキャンセル
From: なおき <naoki@aichinet.or.jp>
Subject: Re: MSIEですがソース表示が出来ません。
Date: 1996/12/11 18:41:13
Reference: mesh.program/00143

TADさんありがとうございますぅ。

12月11日に、TADさんは書きました。

>こんにちわ、なおきさん。
>
>12月10日に、なおきさんは書きました。
>
>>MSIE3.01でソースの表示が出来ません。
>>どうすればよろしいでしょうか?
>>誰かお助けを!!
>
>ということですが、
>MSIE3.01の日本語版ですよね。
>ビルド番号は 4.70.1215 ですか?

その通りです。


>
>私もMSIE3.01使ってますが、前述のような症状はでていませんけど...
>
>もう少し詳しく操作内容を教えてもらえませんか?
>先ず、
>1.メニューバーの表示(V)からソース表示(C)を選んだ
>2.ウィンドウ上で右クリックメニューからソースの表示(V)を選んだ
>のどちらですか?


その両方なんですよ。
どうすればええんでしょうか?


[RE] フォロー記事投稿 記事のキャンセル
From: TAD <hotani@mxt.meshnet.or.jp>
Subject: Re: MSIEですがソース表示が出来ません。
Date: 1996/12/11 20:01:09
Reference: mesh.program/00144

12月11日に、なおきさんは書きました。

>TADさんありがとうございますぅ。

いえいえ、お互いに助け合いましょう。
歳末助け合い運動の季節ですし...(#^_^#)

>12月11日に、TADさんは書きました。
>
>>もう少し詳しく操作内容を教えてもらえませんか?
>>先ず、
>>1.メニューバーの表示(V)からソース表示(C)を選んだ
>>2.ウィンドウ上で右クリックメニューからソースの表示(V)を選んだ
>>のどちらですか?
>
>その両方なんですよ。
>どうすればええんでしょうか?

う〜ん。なんでしょう?
MSIE3.01使っているということはなおきさんの環境はWin95ですよね。

考えられることを挙げてみます。
  1. notepad.exeがない。
  2. notepad.exeが起動ドライブの WINDOWSディレクトリにない。
  3. MSIE3.01をデフォルトのインストールディレクトリと違うところに入れた。 (そんなんでソース表示できなくなるとは思えないが...)
あまり考えが浮かびません。 MSIE3.01の前はMSIE3.0とかを使っていたんですか? その時はソース表示できていたんですよね。 MSIE3.0からMSIE3.01に換えた時期に何か他にも環境変えませんでしたか? MSの製品サポートのページにもそんな障害はアナウンスされていないですけど... ホントにどうすればいいんでしょう。

[RE] フォロー記事投稿 記事のキャンセル
From: なおき <naoki@aichinet.or.jp>
Subject: Re: MSIEですがソース表示が出来ません。
Date: 1996/12/12 08:47:24
Reference: mesh.program/00145

12月11日に、TADさんは書きました。

>12月11日に、なおきさんは書きました。
>
>>TADさんありがとうございますぅ。
>
>いえいえ、お互いに助け合いましょう。
>歳末助け合い運動の季節ですし...(#^_^#)
>
>>12月11日に、TADさんは書きました。
>>
>>>もう少し詳しく操作内容を教えてもらえませんか?
>>>先ず、
>>>1.メニューバーの表示(V)からソース表示(C)を選んだ
>>>2.ウィンドウ上で右クリックメニューからソースの表示(V)を選んだ
>>>のどちらですか?
>>
>>その両方なんですよ。
>>どうすればええんでしょうか?
>
>う〜ん。なんでしょう?
>MSIE3.01使っているということはなおきさんの環境はWin95ですよね。
>
>考えられることを挙げてみます。
>
  1. notepad.exeがない。
  2. notepad.exeが起動ドライブの WINDOWSディレクトリにない。
  3. MSIE3.01をデフォルトのインストールディレクトリと違うところに入れた。 >(そんなんでソース表示できなくなるとは思えないが...)
>あまり考えが浮かびません。 > >MSIE3.01の前はMSIE3.0とかを使っていたんですか? >その時はソース表示できていたんですよね。 >MSIE3.0からMSIE3.01に換えた時期に何か他にも環境変えませんでしたか? >MSの製品サポートのページにもそんな障害はアナウンスされていないですけど... >ホントにどうすればいいんでしょう。 わかりました。ありがとうございます。 僕があほでした。 以前ある理由で"notepad.exe"を"anotepad.exe"に変えていたんです。 それを戻すのを忘れていました。 本当に僕はおばかさんでした。^o^;;; TADさんのおかげで思い出せました。ありがとう! これからもよろしくお願い申しあげます。

[RE] フォロー記事投稿 記事のキャンセル
From: TAD <hotani@mxt.meshnet.or.jp>
Subject: Re: MSIEですがソース表示が出来ません。
Date: 1996/12/12 10:02:39
Reference: mesh.program/00146

12月12日に、なおきさんは書きました。

>以前ある理由で"notepad.exe"を"anotepad.exe"に変えていたんです。
>それを戻すのを忘れていました。
>本当に僕はおばかさんでした。^o^;;;
>
>TADさんのおかげで思い出せました。ありがとう!

お役に立ててよかったです。

>これからもよろしくお願い申しあげます。

難しい話でなければ...(^^;;


[NEW] フォロー記事投稿 記事のキャンセル
From: Hiro <i14hnakagawa@ec.usp.ac.jp>
Subject: ネスケ3でのJAVA
Date: 1996/12/21 17:37:20

今、文字が電光掲示板のようにスクロールするJAVAアプレットを探しているの
ですが、NN3ではparam設定を全く受け付けないものが結構あるんです。
NN2やMSIEなら問題なく使えても、NN3だとアプレットのデフォルト設定でしか
動作しません。
NN3からJAVAの仕様がかわったんでしょうか?


[NEW] フォロー記事投稿 記事のキャンセル
From: TAD <hotani@mxt.meshnet.or.jp>
Subject: Perlで質問
Date: 1997/01/09 13:41:06

遅ればせながら、みなさんあけましておめでとうございます。
今年もお世話になります。

早速、質問なのですが、

Perlで '*'(アスタリスク)付の変数がたまにでてきますが、
あれは何でしょう?('変数'じゃなかったりして...)
にあさんのスクリプトでもでてきますよね。
↓こういうのです。

  (*convert, $icode) = &jcode'convert(*text, 'sjis', '', $opt);
   ^^^^^^^^                           ^^^^^
どなたか教えて下さい。


とりあえず、「はじめてのPERL」('Learning Perl')は読んで
理解した(まだ完全に覚えてはいませんが... (^^;; )のですが、
そのことは載っていなかったのです。(確か)
「PERLプログラミング」('Programing Perl')には載っているのでしょうか?
#これ、買おうかと思ったんですがなかなか置いてないんですよね。


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mxa.meshnet.or.jp>
Subject: Re: Perlで質問
Date: 1997/01/10 00:02:15
Reference: mesh.program/00149

1月9日に、TADさんは書きました。

>Perlで '*'(アスタリスク)付の変数がたまにでてきますが、
>あれは何でしょう?('変数'じゃなかったりして...)
>
一般的に、手続き型言語で関数呼び出しなどをする時には、引数を値渡しする時と
名前(参照)渡しする時があるのはご存じですよね。perl での *変数 は名前渡しに
相当するものです。

とは言え実用言語(^^;; perl のこと、普通の言語とはひと味違っています。

関数を hoge(*a, *b) と呼び出し、関数の中で local(*x, *y) = @_; と引数を
もらうと、$x, $y は $a, $b として使えます。もちろん変更すれば反映されます。
マップされるのは何も $a だけでなく、@a は @x として、$a{} は $x{} として、
その他ファイルハンドルだろうが関数名だろうが何でも割り付けられます。
この機構を type grabbing と呼んでいます。


[RE] フォロー記事投稿 記事のキャンセル
From: TAD <hotani@mxt.meshnet.or.jp>
Subject: Re: Perlで質問
Date: 1997/01/11 04:19:10
Reference: mesh.program/00150

にあさん、回答ありがとうございます。

1月10日に、にあさんは書きました。

>一般的に、手続き型言語で関数呼び出しなどをする時には、引数を値渡しする時と
>名前(参照)渡しする時があるのはご存じですよね。perl での *変数 は名前渡しに
>相当するものです。

なるほど。

>とは言え実用言語(^^;; perl のこと、普通の言語とはひと味違っています。

そこが Perl の Perl たるゆえんなんですね!? (^^)

>関数を hoge(*a, *b) と呼び出し、関数の中で local(*x, *y) = @_; と引数を
>もらうと、$x, $y は $a, $b として使えます。もちろん変更すれば反映されます。
>マップされるのは何も $a だけでなく、@a は @x として、$a{} は $x{} として、
>その他ファイルハンドルだろうが関数名だろうが何でも割り付けられます。

つまり、引数に '*a' と記述しただけで呼び出し元で名前が a というものはすべて、
呼び出された関数の中では x として使えるわけですか。な〜るほど。

例えば、
<a> というファイルハンドルを使っていたら、関数内では <x>。
(この場合 <A> というファイルハンドルは渡されないわけですよね?)
sub a {  } という関数が存在していれば、関数内では &x でその関数aを実行できる。
ということですね。

おかげさまで、だいぶ理解が深まりました。
これでうぇぶ会議室のスクリプトも全部理解できるかな?
と思ってもまだ読めないとこもあるんですよね。
う〜ん、奥が深い。 (#^_^#)


[NEW] フォロー記事投稿 記事のキャンセル
From: マーフィー <koike@cup.com>
Subject: [perl]データの削除、変更について
Date: 1997/01/13 03:28:13

perlでファイル中のデータから日付データを使って、あるデータを
特定し、それをWeb上で編集したり、削除するスクリプトを作ろうとしています。
どのような方法を使って実現したらよいでしょうか?


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mxa.meshnet.or.jp>
Subject: Re: [perl]データの削除、変更について
Date: 1997/01/13 13:33:45
Reference: mesh.program/00152

1月13日に、マーフィーさんは書きました。

>perlでファイル中のデータから日付データを使って、あるデータを
>特定し、それをWeb上で編集したり、削除するスクリプトを作ろうとしています。
>どのような方法を使って実現したらよいでしょうか?
>
うーん、これだけだと一般的過ぎて的確な回答が得られないのでは無いでしょうか?

例えば、扱うデータは固定長のバイナリですか? それとも可変長、それもテキスト?
一時に扱うデータの大きさは? 数十バイト? 数キロバイト? それ以上?
日付からデータは一意に決定出来ますか? それとも、同じ日に複数のデータがありますか?
Web上で編集削除するのは不特定多数の人ですか? それとも、管理者だけ?
そのサーヴァはセキュリティー関係のサポートを行なっていますか? CGIは使えますよね? 

これらの条件を特定していくことで、そのデータを扱うための最適な方法が決定できます。
どんな場合にも適応できる方法というのは通常はありませんし無駄にもなります。
データの扱い方を整理していくことで扱うアルゴリズムも整理されていくものです。

# などと、偉そうなことを言ってますが、あたし自身はあまりプログラムの経験は無いので、
# そんなに色々な場合に最適な方法を知っているわけではありませんが... (^^;;


[RE] フォロー記事投稿 記事のキャンセル
From: マーフィー <koike@cup.com>
Subject: Re: [perl]データの削除、変更について
Date: 1997/01/13 17:05:23
Reference: mesh.program/00153

扱うデータというのは、フォームから入力されたコメントなどを秒単位までの
細かい日付を与えることで管理しそれを特定しようとするものです。
ちょうど、この会議室に投稿された1発言程度のものです。

たとえば、にあさんの会議室の発言の中から「o月t日x時xx分vv秒」という
日付のものを選び出し、それを削除、あるいは編集して元に戻すというような
操作です。
なにか良い案はないでしょうか?

削除する場合は、その日付(仮に$dateとする)に相当する記事を削除すれば
いいですよね、これを編集したいときはどうするんでしょうか?


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mxa.meshnet.or.jp>
Subject: Re: [perl]データの削除、変更について
Date: 1997/01/14 06:46:17
Reference: mesh.program/00155

1月13日に、マーフィーさんは書きました。

>削除する場合は、その日付(仮に$dateとする)に相当する記事を削除すれば
>いいですよね、これを編集したいときはどうするんでしょうか?
>
元々がフォームから入力されたテキストなら、編集もフォームで出来るので簡単ですね。
例えば、此処の会議室でフォローアップ記事を書く時には、既に入力されている記事を
ファイルからフォームに読み込んで、それを編集しているわけです。

此処では違うファイル名で書き込んで、フォロー記事としていますが、同じファイルに
書き戻せばファイルの編集となるわけですね。(^^)

個々のデータの扱いですが、此処みたいに一つの記事が一つのファイルになっている
場合には難しいところは全然ありませんよね。生にファイルの更新日時を使って分類するか、
別に作っておく目次ファイルにファイルの情報を記録して置いてそれを使うか(此処で
やっているのはこれです)まあ、そんなところでしょう。

データを大きなひと塊のファイルにしておいて、それを更新する場合は多少面倒でしょうね。
データの切れ目が分かるようにセパレータを入れるか、index に行を記録しておくか。
セパレータを入れる方が柔軟性はありますが、スキャンしないと場所が分からない欠点は
ありますね。

HTMLデータを生に参照させる場合には、各種の制御情報はコメント文の中に埋め込めば
良いでしょう。此処でもテキスト部分のセパレータにコメントを使っています。

全体のデータがさほど大きくない場合には全てメモリ(配列)に読み込んでしまって
扱えるので楽です。大きい場合はファイルを複数開けて、コピーしながら処理を行なう
事になるでしょう。

生にHTMLで書かないで必ずCGIを通して処理するなら、perl自体がサポートしてる
(こともある)データベースアクセス機構を使うとエレガントにまとまるかもしれません。


[NEW] フォロー記事投稿 記事のキャンセル
From: kkk <a-miya@post1.com>
Subject: CGIで?です。
Date: 1997/01/14 02:05:59

CGIで、ファイルをオープンして、書き込みや削除のときにするのですが

push(@new,$line);

if (!open(DB,">$file")) { &error; }
   print DB @new;
   close(DB);


このpushという意味はどうするコマンドでしょうか?

あと、

foreach $line (@lines)

も、foreachと、$lineの場所には、どういったことをするのか?
おしえていただけないでしょうか?


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mxa.meshnet.or.jp>
Subject: Re: CGIで?です。
Date: 1997/01/14 06:58:48
Reference: mesh.program/00156

1月14日に、kkkさんは書きました。

>push(@new,$line);
>
配列の最後に要素をつけ加えるコマンドですね。

>foreach $line (@lines)
>
>も、foreachと、$lineの場所には、どういったことをするのか?
>おしえていただけないでしょうか?
>
チョット質問の意味が取れないですが、foreach $line (@lines) と言うのは
@lines の要素を順に $line に入れてループする制御構文ですよ?

perlをやるのであれば、Programming perl ぐらいは手元に置いておきましょう。
本を買うのがイヤなら、フリーで手に入る WinNT perl の中に HTML 形式のレファレンス
マニュアルが入っていますから、それを使いましょう。(^^)


[RE] フォロー記事投稿 記事のキャンセル
From: TAD <hotani@mxt.meshnet.or.jp>
Subject: Re: CGIで?です。
Date: 1997/01/14 18:35:22
Reference: mesh.program/00158

1月14日に、にあさんは書きました。

>perlをやるのであれば、Programming perl ぐらいは手元に置いておきましょう。

せめて「Learning Perl」(「はじめてのPERL」)だけでも読むといいですよ。
とてもわかりやすいし、いろいろとわかるようになります。
「Programming perl」より安いですし... (^^;;  (4500円>2900円)

>本を買うのがイヤなら、フリーで手に入る WinNT perl の中に HTML 形式のレファレンス
>マニュアルが入っていますから、それを使いましょう。(^^)

おぉ、これはいい!! と言いたいところですけど、やっぱり 全文英語ですね。 (^^;;
まぁ、ないよりはましか...


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mxa.meshnet.or.jp>
Subject: 日本語のperlマニュアル
Date: 1997/01/14 22:34:02
Reference: mesh.program/00159

1月14日に、TADさんは書きました。

>>本を買うのがイヤなら、フリーで手に入る WinNT perl の中に HTML 形式のレファレンス
>>マニュアルが入っていますから、それを使いましょう。(^^)
>
>おぉ、これはいい!! と言いたいところですけど、やっぱり 全文英語ですね。 (^^;;
>まぁ、ないよりはましか...
>
Unixのman形式で良ければ日本語のオンラインマニュアルはありますね。

一次配布布先はPC-VANのSCIENCE SIGのOSLとか、NIFTY-ServeのFGALELのLIBとかにある
"PERL5MAN.TGZ"と言うものです。あたしは Internet 経由で手に入れたのだけど、
どこからもらったのか忘れてしまった。(^^;; archie で見たら、一カ所だけ、

  ftp://ftp.nisiq.net/pub/lang/perl/perl5man/perl5.000man-j.tar.gz (210kB)

と言うのが引っかりました。たぶんサイズから言ってこれでしょう。


[RE] フォロー記事投稿 記事のキャンセル
From: kkk <a-miya@post1.com>
Subject: Re: 日本語のperlマニュアル
Date: 1997/01/14 23:44:57
Reference: mesh.program/00160

1月14日に、にあさんは書きました。

>1月14日に、TADさんは書きました。
>
>>>本を買うのがイヤなら、フリーで手に入る WinNT perl の中に HTML 形式のレファレンス
>>>マニュアルが入っていますから、それを使いましょう。(^^)
>>
>>おぉ、これはいい!! と言いたいところですけど、やっぱり 全文英語ですね。 (^^;;
>>まぁ、ないよりはましか...
>>
>Unixのman形式で良ければ日本語のオンラインマニュアルはありますね。
>
>一次配布布先はPC-VANのSCIENCE SIGのOSLとか、NIFTY-ServeのFGALELのLIBとかにある
>"PERL5MAN.TGZ"と言うものです。あたしは Internet 経由で手に入れたのだけど、
>どこからもらったのか忘れてしまった。(^^;; archie で見たら、一カ所だけ、
>
>  ftp://ftp.nisiq.net/pub/lang/perl/perl5man/perl5.000man-j.tar.gz (210kB)
>
>と言うのが引っかりました。たぶんサイズから言ってこれでしょう。

GZ は解凍できない!

HTML化したのをさがしてますがしりませんでしょうかか?
PERLの本は高いし。。

ううん


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mxa.meshnet.or.jp>
Subject: Re: 日本語のperlマニュアル
Date: 1997/01/15 05:32:51
Reference: mesh.program/00162

1月14日に、kkkさんは書きました。

>>  ftp://ftp.nisiq.net/pub/lang/perl/perl5man/perl5.000man-j.tar.gz (210kB)
>>と言うのが引っかりました。たぶんサイズから言ってこれでしょう。
>
>GZ は解凍できない!
>
kkkさんはWindows環境でしたよね? でしたらWinZIPで解凍できますけど...

>HTML化したのをさがしてますがしりませんでしょうかか?
>
うーん、日本語のは知らないですねぇ (^^;;


[RE] フォロー記事投稿 記事のキャンセル
From: TAD <hotani@mxt.meshnet.or.jp>
Subject: Re: 日本語のperlマニュアル
Date: 1997/01/15 03:13:15
Reference: mesh.program/00160

1月14日に、にあさんは書きました。

>Unixのman形式で良ければ日本語のオンラインマニュアルはありますね。

おぉ、それはいい!!

>一次配布布先はPC-VANのSCIENCE SIGのOSLとか、NIFTY-ServeのFGALELのLIBとかにある
>"PERL5MAN.TGZ"と言うものです。あたしは Internet 経由で手に入れたのだけど、
>どこからもらったのか忘れてしまった。(^^;; archie で見たら、一カ所だけ、
>
>ftp://ftp.nisiq.net/pub/lang/perl/perl5man/perl5.000man-j.tar.gz (210kB)
>
>と言うのが引っかりました。たぶんサイズから言ってこれでしょう。

さっそくDLして解凍しました。
"PERL5MAN.TGZ"でしたよ>にあさん
これは使えそうです。ありがとうございました。

ところがこのファイル、文字コードがEUCみたいです。
何とかしなくては...


[RE] フォロー記事投稿 記事のキャンセル
From: こん <PXC06010@niftyserve.or.jp>
Subject: Re: 日本語のperlマニュアル
Date: 1997/01/15 19:02:27
Reference: mesh.program/00163

Perlを勉強しようとおもいたった こん でございます。
日本語のPerlマニュアルと聞いて興味津々です。
途中適当に省略させて頂きました。

1月15日に、TADさんは書きました。

>1月14日に、にあさんは書きました。
>>Unixのman形式で良ければ日本語のオンラインマニュアルはありますね。
>>一次配布布先はPC-VANのSCIENCE SIGのOSLとか、NIFTY-ServeのFGALELのLIBとかにある
>>"PERL5MAN.TGZ"と言うものです。あたしは Internet 経由で手に入れ
灯台下暗し早速取りに行きます。貴重な情報有り難うございます。
ついでといっては何ですが他の情報も。
ベクターデザインのMS-DOS/GNU/GNUperlにも別のやつ(サイズ&名前
からすると)perljdoc.lzhがあります。
URLは下記です。http://www.vector.co.jp/ipack/filearea/dos/frameset.html

>ところがこのファイル、文字コードがEUCみたいです。
>何とかしなくては...
これなら窓の杜にあるViViと言うエディタで読めると思いますよ。
Windows95用です。
URLは下記です。
http://www.forest.impress.co.jp/


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mxa.meshnet.or.jp>
Subject: Re: 日本語のperlマニュアル
Date: 1997/01/16 02:16:57
Reference: mesh.program/00170

1月15日に、こんさんは書きました。

>ベクターデザインのMS-DOS/GNU/GNUperlにも別のやつ(サイズ&名前
>からすると)perljdoc.lzhがあります。
>URLは下記です。http://www.vector.co.jp/ipack/filearea/dos/frameset.html
>
ベクターデザインのCD-ROMブックなら毎回送って来るので、早速見てみたのですが
最新版からは既に無くなっていますね。(^^;; 遡って調べてみると最初のやつから
Pack8000 までは収録されていますがそれ以降無くなっているので、history pack の
方に移ってしまったようですね。

# まあ、今は Internet 経由で手に入りますから良いですが。(^^)


[RE] フォロー記事投稿 記事のキャンセル
From: ま〜さ <marsa@cap.bekkoame.or.jp>
Subject: Re: 日本語のperlマニュアル?
Date: 1997/01/21 00:59:02
Reference: mesh.program/00159

1月14日に、TADさんは書きました。
>>本を買うのがイヤなら、フリーで手に入る WinNT perl の中に HTML 形式のレファレンス
>>マニュアルが入っていますから、それを使いましょう。(^^)
>
>おぉ、これはいい!! と言いたいところですけど、やっぱり 全文英語ですね。 (^^;;
>まぁ、ないよりはましか...

えーと、個人的には

 http://www.cec.co.jp/usr/hasegawa/Docs/perl-jman/perl-4.019/perl_toc.html

を、重宝してます。
初歩から学ぶにはちょっと向かないかと思いますが、リファレンス程度には
十分ではないでしょうか?


[NEW] フォロー記事投稿 記事のキャンセル
From: 北澤@BADKID <badkid@mxb.meshnet.or.jp>
Subject: bin/sh って何で動かすのでしょうか?
Date: 1997/01/14 23:22:55

 素人の北澤@BADKIDです (^^;
メッシュではnpcも会議室もうまく動いておりますが・・・

 最近ローカルなNT環境でサーバーのテストをしております。
CGIはPERLIS.DLLで無事に動いておりますが、WEB会議室を使うにあたって
プログラム内の sh って部分でハタと困っております。
何か特別な(PERLの様な)言語が必要なのでしょうか?
NTで稼働している会議室があるようなので何か策があると思うのですが・・
お教えいただけるととっても嬉しいです (^^)

 よろしくお願いします


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mxa.meshnet.or.jp>
Subject: Re: bin/sh って何で動かすのでしょうか?
Date: 1997/01/15 05:49:58
Reference: mesh.program/00161

1月14日に、北澤@BADKIDさんは書きました。

>最近ローカルなNT環境でサーバーのテストをしております。
>
をっ、NTのヴァージョンは幾つですか? NT4.0ですか?

>CGIはPERLIS.DLLで無事に動いておりますが、
>
PERLIS.DLLをお使いなのですね。北澤さんの所では「今度は日付が・・・」のスレッドで
話題になっているタイムゾーンの問題はどうなっていますか? 記事674にタイムゾーン
試験のためのスクリプトがあるので実行してみていただけませんか?

>WEB会議室を使うにあたって
>プログラム内の sh って部分でハタと困っております。
>
ん?「うぇぶ会議室」のスクリプトではperl以外使っていませんが...


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mxa.meshnet.or.jp>
Subject: Re: bin/sh って何で動かすのでしょうか?
Date: 1997/01/15 18:21:03
Reference: mesh.program/00166

1月15日に、にあさんは書きました。

>>WEB会議室を使うにあたって
>>プログラム内の sh って部分でハタと困っております。
>>
>ん?「うぇぶ会議室」のスクリプトではperl以外使っていませんが...
>
あ、今気が付きましたが、これって自己解凍CGIの中で使っている sh の事ですか?
自己解凍CGIは、UNIXサーヴァを仮定して UNIX のコマンドを多数使っていますから
NT server では使えないです。地道に tar+gz を展開してパーミッションを設定する
必要があります。


[RE] フォロー記事投稿 記事のキャンセル
From: 北澤@BADKID <badkid@mxb.meshnet.or.jp>
Subject: Re: bin/sh って何で動かすのでしょうか?
Date: 1997/01/15 21:08:07
Reference: mesh.program/00166

1月15日に、にあさんは書きました。

>>最近ローカルなNT環境でサーバーのテストをしております。
>>
>をっ、NTのヴァージョンは幾つですか? NT4.0ですか?

 アップしてから環境を賀来のを忘れているのに気が付いて・・・
 NT4.0サーバー + IIS2.0 です。


>>CGIはPERLIS.DLLで無事に動いておりますが、
>>
>PERLIS.DLLをお使いなのですね。北澤さんの所では「今度は日付が・・・」のスレッドで
>話題になっているタイムゾーンの問題はどうなっていますか? 記事674にタイムゾーン
>試験のためのスクリプトがあるので実行してみていただけませんか?

 はい、実験してみました。 テストした時間は午前10時40分頃です。

 localtime.cgiのテスト結果
  0, 16, 18, 10
  0, 16, 18, 10
  0, 16, 18, 10

npc.exe?ENV の結果はこんな感じになりました



>>WEB会議室を使うにあたって
>>プログラム内の sh って部分でハタと困っております。
>>
>ん?「うぇぶ会議室」のスクリプトではperl以外使っていませんが...

「うぇぶ会議室」ではperlだけですね・・
アーカイブされた FORUMSET.16A を実行するためには解決しなくてはなり
ませんよね。 プログラムそのものはmeshのディレクトリで実行した物を
持ってきましたのでテストは出来ていますが・・・

 FORUMSET.16A(cgi)の最初の構文で

>#!/bin/sh       ← この部分なんですが???
>
>tar="tar"       ← この部分もなんですが???
>compress="compress"
>uudecode="uudecode"
>
>umask 070
>
>echo 'Content-Type: text/plain'

 #!/bin/sh の部分はNTには当然最初は無いわけですよね。 で、Perlのように
何かプログラムを入れなくてはならないのでしょうか。シェルのプログラムを探して
みたのですが・・ 沢山出てきすぎてなんだか??です。
きょうわBBS も見てきましたので、動くことは確認しました (^^)


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mxa.meshnet.or.jp>
Subject: Re: bin/sh って何で動かすのでしょうか?
Date: 1997/01/16 01:07:02
Reference: mesh.program/00172

1月15日に、北澤@BADKIDさんは書きました。

>>PERLIS.DLLをお使いなのですね。北澤さんの所では「今度は日付が・・・」のスレッドで
>>話題になっているタイムゾーンの問題はどうなっていますか? 記事674にタイムゾーン
>>試験のためのスクリプトがあるので実行してみていただけませんか?
>
> はい、実験してみました。 テストした時間は午前10時40分頃です。
>
> localtime.cgiのテスト結果
>  0, 16, 18, 10
>  0, 16, 18, 10
>  0, 16, 18, 10
>
どうもお手数をかけました。(^^)

うーん、NT4.0 + IIS2.0 でもタイムゾーンはダメですか。(;_;)
とっても期待していたのですが...

# タイムゾーン誤りの回避法は「うぇぶ会議室の部屋」に書きましたので
# そちらを参照して下さい。


[NEW] フォロー記事投稿 記事のキャンセル
From: Hiro <i14hnakagawa@ec.usp.ac.jp>
Subject: 正規表現での日本語
Date: 1997/01/15 14:11:31

sjisコードに$5c(¥)が混ざっていると、正規表現などで誤動作しますよね。
sjis中の$5cを探して、$5cを重ねてやればいいのでしょうが、
$5cがsjisの下位(上位?)8bitなのかどうかを判定するのを
どうすればいいんでしょうか?

あ、Perl5です。

#うぇぶ会議室をカスタマイズするのがきっかけで、Perlにハマってしまいました。
#Perlっておもしろいですね。特に連想配列とか。


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mxa.meshnet.or.jp>
Subject: Re: 正規表現での日本語
Date: 1997/01/15 18:31:12
Reference: mesh.program/00167

1月15日に、Hiroさんは書きました。

>sjisコードに$5c(¥)が混ざっていると、正規表現などで誤動作しますよね。
>sjis中の$5cを探して、$5cを重ねてやればいいのでしょうが、
>$5cがsjisの下位(上位?)8bitなのかどうかを判定するのを
>どうすればいいんでしょうか?
>
これは検索文字列に正規表現を使う時の話ですよね? 単純な文字列比較なら漢字中か
どうかにかかわり無く、全てエスケープしてしまえばそれで事足る訳ですから。

いくつか問題点があります。最大の問題は通常の perl では "[あ-ん]+" の様な、
漢字に対する正規表現が利かないことです。通常の perl でこれを実現するために
色々テクニックを弄する事も可能らしいですが、jperl などのように漢字を1文字と
認識する perlパッチを利用するのが簡単でしょう。そうすれば sjis 中の '\' に
関する処理も perlパッチ自身がやってくれます。

あるいは、漢字部分に正規表現が使えないことに目をつむって "記事[0-9]{5}" の
様なものだけでも表現したい、と言う要請もあるでしょうね。この場合、Hiroさんが
おっしゃる様に SJIS 部分に現われる '\' をエスケープする必要があります。

まず、簡単なのは EUC を使うことです。EUC の場合は漢字の類は全て bit7 が
立っていますから '\' などのコードにぶつかることは無いです。まず、全てを
EUC に変換してから行なえば特殊な処理はいりません。必要なら検索結果を
SJIS に戻してから出力すれば良いですね。

もしも検索対象が膨大な SJIS データであり、いちいち漢字変換を行なうのが実質的に
不可能である時には検索漢字のエスケープが必要ですね。その場合でも、一番真っ当な
方法は、最初の文字から順繰りに見ていき、漢字の2バイト目に問題がある文字('\'とか
'@'とか)が現われたらエスケープして行く、と言うものでしょうね。漢字コードが
SJIS と判っている場合にはこの処理は簡単ですよね。SJIS 1バイト目は 0x81〜0x9F か
0xE0〜0xFC ですのでそれを見ていればいいわけです。

もう一つは一寸トリッキーな方法で、あまりおすすめはしませんが、検索文字列を EUC に
変換して漢字中の '\' や '@' を無くし、残りの '\' や '@' を検索文字列中には現われ
ないことが判っているコード (コントロールコードなど) に変換してから SJIS に戻し、
漢字中の '\' や '@' をエスケープしてから本当の '\' や '@' を元に戻す、と言うのが
あります。これだと「見かけは」簡単になります... けど、実際の処理量は多いです。(^^;;


[RE] フォロー記事投稿 記事のキャンセル
From: Hiro <i14hnakagawa@ec.usp.ac.jp>
Subject: Re: 正規表現での日本語
Date: 1997/01/15 19:08:39
Reference: mesh.program/00169

1月15日に、にあさんは書きました。

丁寧な回答、ありがとうございます。

>いくつか問題点があります。最大の問題は通常の perl では "[あ-ん]+" の様な、
>漢字に対する正規表現が利かないことです。通常の perl でこれを実現するために
>色々テクニックを弄する事も可能らしいですが、jperl などのように漢字を1文字と
>認識する perlパッチを利用するのが簡単でしょう。そうすれば sjis 中の '\' に
>関する処理も perlパッチ自身がやってくれます。

む、やはりjperlが妥当なんですか。
PerlIS.dllに日本語パッチがあればいいのですが。

>もしも検索対象が膨大な SJIS データであり、いちいち漢字変換を行なうのが実質的に
>不可能である時には検索漢字のエスケープが必要ですね。その場合でも、一番真っ当な
>方法は、最初の文字から順繰りに見ていき、漢字の2バイト目に問題がある文字('\'とか
>'@'とか)が現われたらエスケープして行く、と言うものでしょうね。漢字コードが
>SJIS と判っている場合にはこの処理は簡単ですよね。SJIS 1バイト目は 0x81〜0x9F か
>0xE0〜0xFC ですのでそれを見ていればいいわけです。

なるほど。
ところで、2バイト目のエスケープすべき文字というのには、
どれほどあるのでしょうか。


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mxa.meshnet.or.jp>
Subject: Re: 正規表現での日本語
Date: 1997/01/16 02:24:47
Reference: mesh.program/00171

1月15日に、Hiroさんは書きました。

>ところで、2バイト目のエスケープすべき文字というのには、
>どれほどあるのでしょうか。
>
そうですねぇ、SJIS の 2バイト目は 0x40〜0x7E、0x80〜0xFC ですから、
'@'、'['、'\'、']'、'{'、'|'、'}' と言う所ですか。意外に多いですね。(^^;;


[NEW] フォロー記事投稿 記事のキャンセル
From: momo <ttminfo@alpha-web.or.jp>
Subject: Perl の使用について初心者による愚問です。。。
Date: 1997/01/16 16:37:33

にあさん、みなさん、こんにちは。
遅くなりましたがあけましておめでとうございます。
以前、npc−cgiの設置でお世話になっていた者です。
(ペンネーム変えました。前はスズキの名前でお世話になりました)

Perlプログラミングを理解しようと一通り書籍とオンラインは見てみた上
での愚問ですので(常識すぎてマニュアルには書かれていない?)、
どうかご容赦の上、ご指導ください!



質問1
Perl はプログラミングする自分のマシンだけにインストールされていればよいですか?
サーバ側にも何かインストールしたりコンフィグレーションしないといけないでしょうか?

質問2
エディタで作ったPerlプログラムは、npc−cgiをコンパイルしたときと同じ要領で、C++でビルドすればいいんですよね?

過去LOGはまだ全部見ていないので、もし以前に同じ質問と回答が
ありましたら、その記事番号を教えてください。

環境は サーバ NT3.5+IIS1.0 クライアント Windows95 です。
Perlは  Perl5 for win32 を

 http://www.perl.hip.com/ 

からダウンロードしました。

Fj.Comp.Perl もお邪魔してみたりしましたが、とても私が質問できる場所ではなくて
(他のfjで”こんな書き込みするな”とかレスされてるのを見かけました)。。。

にあさん、皆さん、どうか教えてください。


[RE] フォロー記事投稿 記事のキャンセル
From: まじん <majin@mxp.meshnet.or.jp>
Subject: Re: Perl の使用について初心者による愚問です。。。
Date: 1997/01/17 00:44:53
Reference: mesh.program/00177

1月16日に、momoさんは書きました。

>質問1
>Perl はプログラミングする自分のマシンだけにインストールされていればよいですか?
>サーバ側にも何かインストールしたりコンフィグレーションしないといけないでしょうか?

CGIとしてのperlという意味ですよね。
その場合は、サーバーにperlが必要です。クライアント側にはperlは
必要ありません。
momoさんの環境ではサーバー側にはすでにperlがインストールされて
いるようですので、環境設定は必要かもしれませんが、
サーバー側にあらためて入れておくのは、momoさんが動かしたいと思っている
perlのスクリプトです。
できれば、CGIの概念というか、仕組みを勉強してみて下さい。
きっと、スッキリすると思います。

>質問2
>エディタで作ったPerlプログラムは、npc−cgiをコンパイルしたときと同じ要領で、C++でビルドすればいいんですよね?
>

C++とperlはまったく別の言語です。
よって、perlのスクリプトをC++でビルドすることはできません。
インタプリタという言葉を何かの本ででも調べてみて下さい。
本屋の立ち読み程度でも理解できると思います。


[RE] フォロー記事投稿 記事のキャンセル
From: マーフィー <koike@cup.com>
Subject: Re: Perl の使用について初心者による愚問です。。。
Date: 1997/01/17 00:49:39
Reference: mesh.program/00177

1月16日に、momoさんは書きました。


>質問1
>Perl はプログラミングする自分のマシンだけにインストールされていればよいですか?
>サーバ側にも何かインストールしたりコンフィグレーションしないといけないでしょうか?

この質問は、CGIのプログラミングをperlでするという前提でお答えします。
CGIを走らせる場合、CGIを走らせるサーバー上にperlが、インストールされている必要があります。
サーバーの管理者にCGIが使えるか確認するといいでしょう。

>質問2
>エディタで作ったPerlプログラムは、npc−cgiをコンパイルしたときと同じ要領で、C++でビルドすればいいんですよね?

Perlプログラムは、Perl言語で書いてあるわけですから、C++でコンパイルはできないでしょう。
基本的にPerlプログラムは、コンパイルする必要はないと思います。


http://www.bekkoame.or.jp/~syunji/perl/perlindx.htmlなどに行ってもう少しPerlの勉強をしてみてはどうですか?


[RE] フォロー記事投稿 記事のキャンセル
From: momo <ttminfo@alpha-web.or.jp>
Subject: Re: Perl の使用について初心者による愚問です。。。
Date: 1997/01/17 09:46:19
Reference: mesh.program/00179

マーフィーさん、まじんさん、お返事いただき、
本当にありがとうございます。

>
>http://www.bekkoame.or.jp/~syunji/perl/perlindx.htmlなどに行ってもう少しPerlの勉強をしてみてはどうですか?


顔から火が出る思いです。
O’Relly社の「CGIプログラミング」という本と、
「ホームページ裏技」http://www.ask.or.jp/~rescue
というページや英語のPerl home pageなど読んで言葉と動作の概要図
は見たのですが、その意味がどうもわからなかったんです。。。
マーフィーさんが教えてくださったページを見てもう一度よく勉強します。

ps:
やっぱりこちらも初心者が質問しちゃいけなかったのですね。。。


[RE] フォロー記事投稿 記事のキャンセル
From: TAD <hotani@mxt.meshnet.or.jp>
Subject: Re: Perl の使用について初心者による愚問です。。。
Date: 1997/01/17 11:41:33
Reference: mesh.program/00180

momoさん、こんにちは。

1月17日に、momoさんは書きました。

>顔から火が出る思いです。
みんな最初は何も知らないのですから、気にすることはないですよ。

>O’Relly社の「CGIプログラミング」という本と、
Perlをやってみようと言うのなら、同じくO’Relly社の「はじめてのPERL」('Learning Perl')も
わかりやすくていいですよ。(私もつい先日読み終えました。)

>ps:
>やっぱりこちらも初心者が質問しちゃいけなかったのですね。。。
そんなことはないと思います。
「うぇぶ会議室」主催者のにあさんをはじめ、ここを見てる人はみな親切な方ですから、
わかるまで教えてくれますよ。(どこかの学習塾のうたい文句みたいだな (^^;; )
どんどん質問していいんじゃないでしょうか。

でしゃっばってしまって、すみません。 >にあさん


[RE] フォロー記事投稿 記事のキャンセル
From: マーフィー <koike@cup.com>
Subject: Re: Perl の使用について初心者による愚問です。。。
Date: 1997/01/18 03:19:26
Reference: mesh.program/00180

1月17日に、momoさんは書きました。


>顔から火が出る思いです。
>O’Relly社の「CGIプログラミング」という本と、
私もこの本は、立ち読みしてきました。

>マーフィーさんが教えてくださったページを見てもう一度よく勉強します。
私のPerlの知識は、ほとんどすべてと言っていいくらいほとんどがネットワーク上で手に入れたものです。
足りない部分や、どうしても理解できない部分なんかは、本屋に立ち読みに行きます。
ですから、まだ一冊もPerlに関する本を持っていないのです。(^^;

>やっぱりこちらも初心者が質問しちゃいけなかったのですね。。。
いえいえ、初心者こそ物怖じせずにこういった場所で質問するべきです。
わたしも、ほんの2,3ヶ月まえまでは、Perlがプログラム言語であり、
ラクダさんなのだということくらいしか知りませんでしたから。(笑)

わからないことがあったらどんどん質問しましょう!


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mxa.meshnet.or.jp>
Subject: Re: Perl の使用について初心者による愚問です。。。
Date: 1997/01/18 04:42:04
Reference: mesh.program/00180

1月17日に、momoさんは書きました。

>やっぱりこちらも初心者が質問しちゃいけなかったのですね。。。
>
みなさんおっしゃるように、そんなことは無いです。
はじめから何でも知っている人は居ないので、知らないことを恥じることは無いです。

ただし、何度も行なわれているような質問や簡単な質問に対する答えは、質問者の自助努力を
促すため、見た目は「どこそこを見ろ」と言った素っ気ないものになるかも知れません。
回答をしてる方々は好意でなさっているので、知らないことには寛容ですが自助努力を
怠る人には厳しいかも知れません。

# とチョット脅かしておきましょうか。 (^^)

管理者は怠惰なので余り出てこないかも知れませんが、親切な方はたくさん居るので安心です。(^^)
# 安心して怠惰にしてます。(^^ゞ

## じつは、この投稿は Operaでフォローアップが出来るかどうかの試験を兼ねてたりして... (^^;;


[NEW] フォロー記事投稿 記事のキャンセル
From: 北澤@BADKID <badkid@mxb.meshnet.or.jp>
Subject: NTでのファイルのパーミッションの事なんですが・・
Date: 1997/01/17 14:46:55

 ども、北澤@BADKIDです。

 以前に話題になっていましたが、NTでのファイルのパーミッションの事なんですが・・
ファイル自体のアクセス権の設定はエキスプローラーでは出来ますが、IISのFTP
サーバーを使って市販のFTPソフトでアクセスしてパーミッションの設定って出来ない
のでしょぅか?

今はローカルな環境ですので特別な支障はないのですが、ダイアルアップでログインさせた
場合に特定のユーザーディレクトリの中のファイルのパーミッションの設定が出来ないので
は困ってしまいます。 chmodコマンドは現状では使えませんよね (^^;

こじろぉさんの所ではどうしてますか?

ついでで申し訳ないですが、うぇぶ会議室のファイル関係のアクセス権の設定状況も教えて
頂けると嬉しいのですが (^^;

 よろしくお願いします m(__)m


[NEW] フォロー記事投稿 記事のキャンセル
From: kkk <a-miya@post1.com>
Subject: CGIでのクッキーのつかいかたがいまだにわかりません
Date: 1997/01/20 02:03:56

クッキーの使い方がわかりません。

FORM型にして、名前と、E-MAILを食べさせて、

次に来たときに、名前と、E-MAILを吐き出す方法がまったくわかりません。

クッキーの説明を読んでも英語で全くわからない。

クッキーが使えず何週間もなやんでます。うごけーっていっても動いてくれない。
以下のデータです。

#####################はじまり##########
#!/usr/mesh/bin/perl

require 'jcode.pl';
$reload = 'http://www2a.meshnet.or.jp/~1/xxx.cgi';

if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); }
else { $buffer = $ENV{'QUERY_STRING'}; }

if ($buffer eq "") { &html; } else { ®ist; }

sub html {

#クッキーを出す
$cookies = $ENV{'HTTP_COOKIE'};

#この部分がわかりません。
#この部分がわかりません。
#この部分がわかりません。
#この部分がわかりません。

print "Content-type: text/html\n\n";

print <<"EOF";

名前:
E-MAIL:

EOF print "\n"; } sub regist { @pairs = split(/&/,$buffer); foreach $pair(@pairs) { ($name,$value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; &jcode'convert(*value,'sjis'); # sjisコードに変換 $value =~ s/


[RE] フォロー記事投稿 記事のキャンセル
From: Yasu.F <yasuf@ariake.or.jp>
Subject: Re: CGIでのクッキーのつかいかたがいまだにわかりません
Date: 1997/01/20 17:38:40
Reference: mesh.program/00185

うーん、具体的にどのように書いたのか分かるとアドバイス
しやすいのですが…

クッキーの使い方でしたら、うぇぶ会議室のhttp.plあたりが
参考になると思いますよ。これをそのまま持っていっても
大丈夫でしょう(freeということなので)。

# わたしは最初から自分で書いたけど^^;


[NEW] フォロー記事投稿 記事のキャンセル
From: マーフィー <koike@cup.com>
Subject: 文字列の置換
Date: 1997/01/20 03:27:41

Perlでプログラムを作っているのですが
データとして、
http://www.xxxx.xx が来たときに、これを別の文字列(ページ名)に
置き換えたいのです。
そのために、データベースとなるファイルを用意して、
そこに
---------------------------
http://www.xxxx.xxx/ , Hoge
http://www.yyy.foo/~hoge/ , マーフィー

----------------------------
のようなデータを入れておき、これと照合して置換したいのですが、
どのようにしたらいいでしょう
ちょうど、ウェブ会議室のシステムでファイル名と会議室、
英数字のエラーと日本語のエラーの説明、のように置換されているようなので
同じようにしてできないかと考えたのですが、うまくいきません。
お願いします。


[RE] フォロー記事投稿 記事のキャンセル
From: Yasu.F <yasuf@ariake.or.jp>
Subject: Re: 文字列の置換
Date: 1997/01/20 17:12:54
Reference: mesh.program/00186

1月20日に、マーフィーさんは書きました。

>Perlでプログラムを作っているのですが
>データとして、
>http://www.xxxx.xx が来たときに、これを別の文字列(ページ名)に
>置き換えたいのです。
>そのために、データベースとなるファイルを用意して、
>そこに
>---------------------------
>http://www.xxxx.xxx/ , Hoge
>http://www.yyy.foo/~hoge/ , マーフィー
>
>----------------------------
>のようなデータを入れておき、これと照合して置換したいのですが、
>どのようにしたらいいでしょう

いくつか方法はありますが、例えば次のように書けます。

  # まず、データベースファイルを読み込んで連想配列に記憶しておく
  open(DB, 'hogehoge.dat') || die "cannot open database: $!";

  while(<DB>) {
      chop;
      ($url, $title) = split(/ , /);  # 区切りは適当に変える
      $homepage{$url} = $title;
  }

  ...

  # $urlにURLが入っているとして、タイトルを$titleに入れる
  $title = $homepage{$url} if $homepage{$url};

または、データを直接スクリプトに記述してもいいのなら、

  %title = (
      'http://www.xxxx.xxx/', 'Hoge',
      'http://www.yyy.foo/~hoge/', 'マーフィー',
  );

とすれば、前半部分を省略できます。

# ちょっと書きすぎたかな?^^;


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mxa.meshnet.or.jp>
Subject: Re: 文字列の置換
Date: 1997/01/21 06:00:41
Reference: mesh.program/00187

1月20日に、Yasu.Fさんは書きました。

>1月20日に、マーフィーさんは書きました。
>
>>Perlでプログラムを作っているのですが
>>データとして、
>>http://www.xxxx.xx が来たときに、これを別の文字列(ページ名)に
>>置き換えたいのです。
>
>いくつか方法はありますが、例えば次のように書けます。
>
>  # まず、データベースファイルを読み込んで連想配列に記憶しておく
>  open(DB, 'hogehoge.dat') || die "cannot open database: $!";
>
dbmopen() を使って、直接 dbm ファイルを開ける、と言う手もありますね。
# perl5 なら tie の方が良いです。

変換データベースが大きい時にはこちらの方が有利です。
もっとも、データベースを作るのもスクリプトによらなければならないので
作成は多少面倒になりますが、参照時には構文解析が要らない分軽くなりますね。


[RE] フォロー記事投稿 記事のキャンセル
From: Hiro <i14hnakagawa@ec.usp.ac.jp>
Subject: Re: 文字列の置換
Date: 1997/01/21 13:24:51
Reference: mesh.program/00190

1月21日に、にあさんは書きました。

>dbmopen() を使って、直接 dbm ファイルを開ける、と言う手もありますね。
># perl5 なら tie の方が良いです。
>変換データベースが大きい時にはこちらの方が有利です。
>もっとも、データベースを作るのもスクリプトによらなければならないので
>作成は多少面倒になりますが、参照時には構文解析が要らない分軽くなりますね。

tieってなんでしょう?初耳です。dieみたいなもの・・・じゃないですよね。^^;

あと、read関数でファイルの全内容を読み出すときは、第三パラメータには
どういう指定をすればいいんでしょうか?
巨大な数字を指定すれば読める分だけ読んでくれるようですが、それじゃあちょっと美しくないんで。
$_ = join(' ',);
よりは、readの方が速そうなんで。

#今、Programming Perlは発注中なんですよね。
#Learning Perl(初めてのPerl)は、初心者の方にはおすすめです。読みやすいです。


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mxa.meshnet.or.jp>
Subject: Re: 文字列の置換
Date: 1997/01/21 23:26:42
Reference: mesh.program/00191

1月21日に、Hiroさんは書きました。

>tieってなんでしょう?初耳です。dieみたいなもの・・・じゃないですよね。^^;
>
あたしも New Camel Book はこの間買ってきたばかりで、あまりチャンと読んで
ないのですが (^^;; 変数を packageクラスにバインドするもののようです。
DBM ファイルを扱う時には、%変数をファイル名(やその他のパラメータとともに)
DB_File (あるいは NDBM_File, GDBM_File, SDBM_File, ODBM_File のいずれかの)
クラスにバインドする事になります。

perl4 までで使われてきた dbmopen() を呼び出すと、perl5 ではそれを tie に
差し替えて実行するようです。つまり dbmopen() は単に以前の版との互換性のため
だけに残されたみたいですね。

いままで、DBM ファイルは perl からチャンとロックする方法が無かったのですが
tie を使えばバインドされたクラスから file descriptor を参照して open() する
事により flock() する事が可能になったので安全になりました。
# とか、書いていますが、まだ、実際にコーディングしたことは無いので... (^^;;
# New Camel Book の p.392〜 を参照して下さい。

>あと、read関数でファイルの全内容を読み出すときは、第三パラメータには
>どういう指定をすればいいんでしょうか?
>巨大な数字を指定すれば読める分だけ読んでくれるようですが、それじゃあちょっと美しくないんで。
>$_ = join(' ',<FOO>);
>よりは、readの方が速そうなんで。
>
基本的には単にバッファエリアですから適当な大きさがあれば良いのでしょうけど
チョット興味もあったので調べてみました。
以下のようなスクリプトで、/large/text/file の大きさは約10MBで測定して見ました。
環境は HP-UX の載っている PA-RISC で、メモリは100MB入れてますがクロックは
33MHz です。(^^;; perl のヴァージョンは 5.003 です。

何回か計って数値が変わらなくなった後なので、ファイルは完全にキャッシュされて
いると思われます。

#!/usr/local/bin/perl

for ($i = 1; $i <= 5; $i++) {
        printf("%dth iteration: ", $i);
        open(INFILE, "/large/text/file");
        $_ = $ARGV[0];
        undef($a);
        if (/0/) {$a = join('', <INFILE>)}
        if (/1/) {while (<INFILE>) { $a .= $_; }}
        if (/2/) {while (read(INFILE, $_, 8192)) { $a .= $_; }}
        if (/3/) {while (sysread(INFILE, $_, 1024)) { $a .= $_; }}
        if (/4/) {while (sysread(INFILE, $_, 2048)) { $a .= $_; }}
        if (/5/) {while (sysread(INFILE, $_, 4096)) { $a .= $_; }}
        if (/6/) {while (sysread(INFILE, $_, 8192)) { $a .= $_; }}
        if (/7/) {while (sysread(INFILE, $_,16384)) { $a .= $_; }}
        if (/8/) {while (sysread(INFILE, $_,32768)) { $a .= $_; }}
        if (/9/) {while (sysread(INFILE, $_,65536)) { $a .= $_; }}
        printf("%dbyte\n", length($a));
        close(INFILE);
}
printf("%dsec\n", time - $^T);

exit(0);

パラメータを 0〜9 まで変えて計ったところこの様な結果になりました。

0: 65sec, 1: 61sec, 2: 29sec, 3: 41sec, 4: 32sec,
5: 29sec, 6: 26sec, 7: 28sec, 8: 29sec, 9: 34sec

一行ずつ連結していくより一気に配列に読んで join() した方が速いかと思って
いたので、チョット意外でした。まあ、それでも read() した方が断然速いのは
当たり前ですね。sysread() はもっと速いかと思っていたのですが、read() と
大して変わらなかったです。バッファエリアは小さすぎず大きすぎず、中庸が
良いと言うことで、まあ、順当な結果ではないでしょうか。(^^)

# これはあくまで、あたしの所でこうなったと言うだけで、環境が変われば最適値も
# 変わるでしょうから、バッファサイズをあまり気にすることは無いと思います。

>#今、Programming Perlは発注中なんですよね。
>
早く来ると良いですね。(^^)


[RE] フォロー記事投稿 記事のキャンセル
From: Yasu.F <yasuf@ariake.or.jp>
Subject: ファイルを全部読み込む
Date: 1997/01/22 05:21:23
Reference: mesh.program/00191

1月21日に、Hiroさんは書きました。

>あと、read関数でファイルの全内容を読み出すときは、第三パラメータには
>どういう指定をすればいいんでしょうか?
>巨大な数字を指定すれば読める分だけ読んでくれるようですが、それじゃあちょっと美しくないんで。
>$_ = join(' ',<FOO>);
>よりは、readの方が速そうなんで。

ファイル(の残りの部分)を全部読み込むのでしたら、

  {
      local($/) = undef;
      $_ = <FOO>;
  }

でも大丈夫だと思います。どれが速いのかは知りませんが、
少なくともjoinよりは速いのではないでしょうか?

# たぶん、joinのセパレータは '' ですね(^^


[RE] フォロー記事投稿 記事のキャンセル
From: にあ <nir@mxa.meshnet.or.jp>
Subject: Re: ファイルを全部読み込む
Date: 1997/01/22 06:02:49
Reference: mesh.program/00194

1月22日に、Yasu.Fさんは書きました。

>ファイル(の残りの部分)を全部読み込むのでしたら、
>
>  {
>      local($/) = undef;
>      $_ = <FOO>;
>  }
>
>でも大丈夫だと思います。どれが速いのかは知りませんが、
>少なくともjoinよりは速いのではないでしょうか?
>
おー、さすが Yasu.F さん。
# って、あたしがヘボなだけか? (^^;;

早速、

        if (/A/) {$/ = undef; $a = <INFILE>}
 
を追加して測定してみると、26sec と出ました。(^^)/
単にファイルの全読み込みならこれが一番エレガントでしょうね。


[RE] フォロー記事投稿 記事のキャンセル
From: Hiro <i14hnakagawa@ec.usp.ac.jp>
Subject: Re: ファイルを全部読み込む
Date: 1997/01/22 13:42:39
Reference: mesh.program/00195

1月22日に、にあさんは書きました。

>1月22日に、Yasu.Fさんは書きました。
>
>>ファイル(の残りの部分)を全部読み込むのでしたら、
>>
>>  {
>>      local($/) = undef;
1月22日に、にあさんは書きました。

にあさん、Yasu.Fさん、回答ありがとうございました。

>>ファイル(の残りの部分)を全部読み込むのでしたら、
>>  {
>>      local($/) = undef;
>>      $_ = <FOO>;
>>  }

$/ の / はどういう意味があるのでしょうか?

ただ単に、
$_ = <FOO>;
とすれば改行で切れてしまいますよね。


以上100記事(キャンセル分を含む)


・ ホームペーヂに戻る
nir@mvg.biglobe.ne.jp
Last Update: 7 March 1998