トップページ⇒php
1001コメント350KB

【Perl】初心者コーナー Part19

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん03/01/11 13:52ID:???
初めに→「perl」その物のスレです。

1:自分はこう言う事がしたい。
2:それでこんな風にやってみたが・・・
3:それだとこんなエラーが出て上手く行かなかった。

1と3が無いと誰も答えられないよ。
良い回答は良い質問から。一緒に勉強しましょう。

あとは>>2-10にまかせた。
0362nobodyさん03/01/22 21:35ID:???
>>360
>CGI専用のディレクトリに入れていたり
そのディレクトリに画像ファイルなんて入れたら大騒ぎだな。
0363nobodyさん03/01/22 21:36ID:???
>>361
Apacheの場合。と書かないと語弊があるぞ。
0364nobodyさん03/01/22 21:37ID:???
>>362
ForbiddenかInternal Server Error(実行権を与えていた場合)になるだけだろ。
0365nobodyさん03/01/22 21:43ID:TWTRYmp3
どの拡張子がCGIスクリプトとして実行すると決めておくのがサーバー設定ってことですか?
WEBサーバーを通さないってことはFTPでってことですか?
かなり初心者なんですいません。
0366nobodyさん03/01/22 21:45ID:???
>>365
>WEBサーバーを通さないってことはFTPでってことですか?
など、そのサーバのファイルシステムに然るべき権限でアクセス出来るプログラムがあればいい。
0367nobodyさん03/01/22 21:46ID:???
>>365
> どの拡張子がCGIスクリプトとして実行すると決めておくのがサーバー設定ってことですか?

そう

> WEBサーバーを通さないってことはFTPでってことですか?

別に何でもいい。FTPじゃ無理だと思うが。
たとえばis○ebのようにセキュリティの甘いところはCGIスクリプトを使って他人のファイルを覗ける
0368nobodyさん03/01/22 21:58ID:???
>>367
アホか。
0369nobodyさん03/01/22 22:00ID:???
>>368
なんか間違った?(^_^;)
0370nobodyさん03/01/22 22:08ID:NkPjRdCp
>>368
お前には課題だ。調べておけ。

suEXEC setuid ファイルの所有者 パーミッション
0371nobodyさん03/01/22 22:11ID:???
>>370
>>367の間違い?
それくらい知っているけど(^_^;)
共用サーバにも関わらずそれをやっていないからis○ebはセキュリティが甘いと言ったんだけど。
0372nobodyさん03/01/22 22:17ID:???
>>328
submitタグのvalueに漢字を使う手も。
0373nobodyさん03/01/22 22:32ID:???
>>357
CGIのみの話題はスレ違い
0374nobodyさん03/01/22 22:42ID:TWTRYmp3
みなさん、ありがとうございました。

>>373
そうなんですか?それすらもよくわからなくて。
ごめんなさい。
0375nobodyさん03/01/23 00:46ID:???
本とかにはopenではよく or dieと組み合わせてありますが、
私の場合openが失敗したからといってスクリプトを終了させるわけ
には行かないので
if(open(IN,"temp.txt")){
opend lines
} else {
canto open lines
}
のようにしているのですが、
こういうことはしないのでしょうか?大丈夫でしょうか?
0376nobodyさん03/01/23 00:48ID:???
>>375
open(IN, "temp.txt") or { cannot open file }
0377nobodyさん03/01/23 00:49ID:???
>>375
じゃ、warnを使えば?
037837503/01/23 00:56ID:???
ありがとうございます
376の方法もいいなとおもいました
0379nobodyさん03/01/23 01:15ID:IkRppvEj
ただ単にファイルをアップロードだけのCGIありませんか?
クライアントからのデータをサーバに保存できさえすれば良いんですが。
0380nobodyさん03/01/23 01:20ID:???
半角文字、ダメです・・・シフトjisとeucだと確定していうるので
送られてくる→&jcode'sjis2euc(\$mes)→内部処理
内部処理→&jcode'euc2sjis(\$mes)→送り返す
としても、半角はおかしくなってしまいます。

なにか解決方法はないでしょうか><
0381nobodyさん03/01/23 01:22ID:???
>>380
\→*
とか。
0382nobodyさん03/01/23 01:56ID:8ePVO3RC
ファイルを開いて内容を配列に収めて配列要素を追加するなり並べ替えるなりしてまたファイルに書き出したら、次に開いたときに各要素の頭(単純にファイルを開いた場合は各行の先頭)に半角スペースが付いてるの。
2回同じことやれば半角スペースが2つ、3回なら3つって具合にどんどん増えてしまう。
なんで?
どうやったら回避できるの? 
何か根本的なこと間違ってる?
0383nobodyさん03/01/23 02:04ID:???
>>380
そもそも「半角カナは文字化けするから使わないように」っていうのがネットの常識じゃなかったか?
2chみたいに、半角カナが堂々と使える掲示板のほうが特殊なのかもしれないぞ。

>>382
ソースきぼんぬ
038438003/01/23 02:19ID:/gwtZ2Vt
>>381
ありがとうございます!
\$ を * にしたらなりました
昔は*を使っていたのですが、\$のほうがいいとか、同義だと
かおもっていて、結果が違うとはおもいませんでした。
*$とうのもあるのですか?
私もまだまだ勉強不足ですね・・
ありがとうございました。
038538003/01/23 02:28ID:???
なんか、ポートがどうとかいわれて書き込めなかった。。
今度は大丈夫かな

>>383
そうなんです。私も半角はいやなのですが、
携帯電話のチャットを作っているので、きってもきれない
関係なんです・・

掲示板で使えるところがあるので、どうにかがんばればできるんだろうなぁ
とか思ってやってました。
文字コードを変換しなければ問題はおこりにくいのかな
0386nobodyさん03/01/23 02:37ID:???
2chは書き込みボタンのキャプションの文字コードを調べて
SJIS以外なら、エラーを返して書き込めないようにしている。
結果として、文字コードの変換処理を省略している。
PC向けならこれで、問題ないように思える。

基本的に、フォームページの文字コードでデータがPOSTされれば
変換処理はいらないと思う。

携帯の場合はどうなんだろう。。ちと気になる。。
0387nobodyさん03/01/23 02:42ID:???
>>385
携帯ならShiftJISだけで処理すればいいんでない?
半角カナOKな掲示板も、内部ではShiftJISだけで処理してるのがほとんどだよ。
0388nobodyさん03/01/23 02:46ID:j5CbC/3T
>>383
382です。ソースはかいつまむと

#!/usr/local/bin/perl

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

open(FILE,"<data.txt");
@data=<FILE>;
close(FILE);

open(FILE,">data.txt");
print FILE "@data\n";
close(FILE);

print "処理終了\n";

exit;

こんなんです。
これだけでもどんどんスペースが増えていきます。
なんででしょう?
038938003/01/23 02:49ID:???
みなさん、ありがとうございます。

本来はshiftjisだけで処理したほうがよかったかもですね。
私の場合は、メッセージにIDや名前や発言があるので
それを切り分けたりとか、サーバー側がつくったメッセージを
くみあわせたりとかがあるので、つい、
サーバー側(UNIX+Apache)ではEUCで扱うようにクセがついています。

半角文字に関しては今のところうまく動いているので、
もしある程度出来上がったらiappliのお金がかかりにくいように
作ったチャットをここで公開しますね
0390nobodyさん03/01/23 02:52ID:???
>>389
かいつまみすぎてわからん。それだけ見れば異常はないけど、
配列の最初の要素にどういうものをいれているんだ?
print "$data[0]syori syuuryou";
とかでみてみた?
0391nobodyさん03/01/23 03:17ID:j5CbC/3T
>>390
えっと私(382=388)へのレスということでいいですよね。
データの内容は会員リスト(氏名だとか住所だとか電話番号をカンマ区切りにしているもの)です。
拡張子はtxtですがためしにcsvとかでやっても同じでした。
data.txtのファイルをブラウザで見ると2つ目以降のデータの頭にどんどん半角スペースがくっついていくんです。
csvにした場合は2行目以降の1列目の各データの頭にスペースが付いていきます。
本当は配列に入れた後、追加だとか並べ替えだとかやりたいんですけどそれ以前の段階でつまづきました。
039239003/01/23 03:28ID:???
>>391
改行コードの違いとかはだいじょうぶ
ファイルをどうやってみてるのかとかわかんないしなぁ

やまだ,東京345,99311
のだ,宮556,552211

見たいな感じなの?
0393nobodyさん03/01/23 03:31ID:???
>>391
こうすると直るよ。

print FILE "@data\n";
    ↓
print FILE @data;
0394nobodyさん03/01/23 03:37ID:j5CbC/3T
>>392
えっと、そんな感じです。

>>393
えっ、ちょっとやってみます。
0395nobodyさん03/01/23 03:42ID:j5CbC/3T
わ、わ、わわわ!
本当だ!
ありがとうございます。(^^)
凄い晴れやかな気分。半日苦しんだから。
でもなんだか恥ずかしくなってきた。
受け売りって言うかよそから拾ってきたものを見本に猿まねで訳もわからず作ってたから。
ところで何でこうなるんですか?
(by 382)
039639303/01/23 04:10ID:???
>>395
調べてみたんだが、ダブルクォート中にリスト変数を記述すると、リストの中身が
展開されるそうな。そのとき区切り文字として特殊変数 $" が使われるんだけど、
この中身はデフォルトでは半角スペース。

例えば、各行が「うんこ」「ウンコ」「unko」のテキストファイルを読み込む。

@data = <FILE>;

すると、$data[0] は「うんこ\n」、$data[1] は「ウンコ\n」 などとなる。

これを間違ってた方法で書き出すと

print FILE "@data\n";

リストが展開され、「うんこ\n ウンコ\n unko\n\n」となる。

結果、2行目以降の先頭にスペースがついてしまったというわけ。
(@dataの後ろの\nが実は末尾にしか付いていないことにも注目)
リストの出力は print FILE @data; のようにダブルクォートせずに書こう。
039739003/01/23 04:12ID:???
>>396
そうそう。おれはそれが言いたかった。
変わりにかいてもらってスマソ
0398nobodyさん03/01/23 10:21ID:???
CGIでメール送信プログラムを組んでおります。

require "mimew.pl";
require "jcode.pl";

(略)
$subject = mimeencode (jcode'jis($subject));
$body = jcode'jis($body);

open(MAIL ,"|/usr/sbin/sendmail -t -i");
print MAIL "From: $MailAddress\n";
print MAIL "Subject: $subject\n";
print MAIL "To: $mailaddress1\n";
print MAIL "\n";
print MAIL "$body\n";

close(MAIL);

で、コマンドラインから実行した場合は正常にメール送信されるのですが、
ブラウザ経由で実行した場合、mimeencodeが実行されません。
(エラーにもなりません。)
mimew.plおよびjcode.plはプログラムと同階層においてあります。
また、ファイルの属性は755です。

八方塞がりの状況です。教えていただけませんでしょうか。
0399nobodyさん03/01/23 11:09ID:???
>>398
.plのパーミッションは普通 644 or 604 だよ。それはOK?
0400nobodyさん03/01/23 11:13ID:xJWtHdWY
sub hoge{
my %aaa;
my @bbb;
# それぞれになんか値を入れる動作する
return(%aaa,@bbb);
}
(%AAA,@BBB) = &hoge;
こうすると@BBBに値が入ってないんですけど、なぜでしょうか。
040139803/01/23 11:19ID:???
>>399
mimew.plのパーミッションは644です。
apacheのログを見たところ、

Undefined subroutine &mimew::mimeencode

と表示されていました。
mimew.plにはmimeencodeが存在しています。
(コマンドラインからは実行されますし)
何か他にチェックするべき点はあるでしょうか。よろしくお願いします。
0402nobodyさん03/01/23 11:21ID:???
>>398
もしも、mimew.plが読み込まれていないと心配なら
eval ( require "mimew.pl" );
で、きちんと読み込まれているかチェックしてみたら
どうでせう?

>>399
0755にしなきゃいけないファイルを0644にしていたら問題だけど、
普通0644にするべきファイルを0755にしていても、問題じゃない
でそ?
0403nobodyさん03/01/23 11:35ID:E5MYBiOX
>>400
my @AAA=&hoge;
%AAA=$AAA[0];
@BBB=$AAA[1];
040439803/01/23 11:56ID:???
>>402
evalでチェックを行ったところ、
mimew.plはきちんと読み込まれていました。
しかし、あいかわらず

Undefined subroutine &mimew::mimeencode

と出力されています。
0405nobodyさん03/01/23 11:59ID:???
>>400
returnは値を1つしか返せないよ。
こういうときはリファレンス渡しにして、サブルーチン側で直接値を変更したほうが
いいかもしれない。

&hoge(\%aaa, \@bbb);

sub hoge {
my ($aref, $bref) = @_;
$aref->{hage} = "ccc";
$bref->[0] = "ddd";
}
0406nobodyさん03/01/23 12:15ID:???
>>398
バッファリングしないようにすれば動く。
0407nobodyさん03/01/23 12:53ID:???
例えば単純変数や配列変数を使う時、
1.作業用の配列を使いまわす事がある
2.分かり易いように名前を決めて、1つの項目しか入れない
場合によって、違うかもしれないけど、貴方はどっち派?
040839003/01/23 13:00ID:???
>>407
おれは2
今の時代、よっぽど負荷がきになるときいがい
2にして、わかりやすいソースを書いたほうがマシ
0409nobodyさん03/01/23 13:13ID:nFHVv77n
CGI経由でファイルを作成しようと思い、
実験として次のソースを書いてみました。
ファイル名:test1.cgi

#!/usr/local/bin/perl
open(FILE,">>./1234.txt");
print FILE "0123456789\r\n";
close FILE;

これをFreeBSD4.7+apacheが動いているコンピュータにいれて
別のコンピュータにブラウザでこのファイルのアドレス
を指定してやると「内部サーバーエラー」が出てしまいます。
何か間違いがあるだろうかと、
apacheが動いているコンピュータで直接
perl test1.cgiとやったところ、1234.txtのファイルが作成されました。
ネットで調べたところ、Apacheのユーザに権限がないと
ファイル作成などはできないということが書いてあったのです、
1234.txtが作成されるディレクトリのパーミッションを775にして、
apacheのユーザを、そのディレクトリのグループのユーザに
加えてみて、今度はapacheのユーザでperl test1.cgiを実行しました。
そうしたところ、上手く作成できたので、今度は外部から試してみました。
そしたらやっぱり内部サーバエラーになってしまうんです。
どこがまずいのか分かりません。
乱文になってしまいましたが、どなたか私の間違いを
指摘して下さいませんか?よろしくお願いします。
0410nobodyさん03/01/23 13:18ID:???
>>409
print "\r\n\r\n";を加えれば動くでしょう。
0411nobodyさん03/01/23 13:25ID:jz3+5dSU
>>409
Apacheにヘッダーを送れ。
print "Content-type:text/plain\n\nファイル作成しますた。\n";
041240903/01/23 13:28ID:???
>410さん
#!/usr/local/bin/perl
print "\r\n\r\n";
open(FILE,">>./1234.txt");
print FILE "0123456789\r\n";
close FILE;
というふうにしてみたんですが、今度はダウンロードしますか?の
ダイアログが出てきてしまいました。どうなってるんでしょうか?
0413nobodyさん03/01/23 13:38ID:???
ダイアログが出たということは、正常に動作しています。

PerlをCGIで動かす場合には、HTTPヘッダを出力する必要があります。
CGIで動かした時にHTTPヘッダがなければ、>>409のようにエラーで動きません。
それだけです。
041439803/01/23 13:46ID:???
>>406
申し訳ございません。
おっしゃる意味が分からないのですが・・・。
0415nobodyさん03/01/23 13:54ID:Ah3Ym1t7
質問します。

文字列中に
#1234(1234は3〜6桁の数字)
と有った場合、
<a href="http:/hoge.com/hoge/1234">#1234</a>
                    ~~~~~ ~~~~~~~
#を外した数字↑   ↑元の文字列

と言う風に変換したいのですが、上手くできません。
どなたかご教授ください。
よろしくお願いします。
0416nobodyさん03/01/23 13:55ID:???
>>414
プログラム的に説明すると、$|=1;を先頭の方に加える。
バッファの意味は辞典なり検索なりして調べてください。
0417nobodyさん03/01/23 14:33ID:???
>>415 こ、今度だけだぞ
my $str = "#1234(1234は3〜6桁の数字)";
(my $tr = $str )=~ s!(#(\d{3,6}))!sprintf("\"http:/hoge.com/hoge/$2\">$1</a>")!ge;
print "$str ->\n$tr\n";
0418nobodyさん03/01/23 14:36ID:???
>>417
おっと、いけねぇ、ミスってもうたわい。まっ、いいか。
0419nobodyさん03/01/23 14:47ID:???
s!#(\d{3,6})!<a href="http://hoge.com/hoge/$1">#$1</a>!g;

補完
042039803/01/23 14:47ID:???
>>416

出力バッファを吐き出すことと、
サブルーチンが見付からないこととはどのような関係があるのでしょうか。
$|=1;を加えてみましたが、結果はかわりませんでした。

ただ、気になるのですが、
$subject = mimeencode(jcode'jis($subject);
と呼び出した場合、
Undefined subroutine &該当コードが含まれているパッケージ名::mimeencode
とエラー出力されます。

mimew.plは正常に読み込んでいるようなのですが・・・。
042139803/01/23 14:52ID:???
ちなみにjcode'jisは正常に呼び出せています。
0422nobodyさん03/01/23 15:03ID:Ah3Ym1t7
>>417-419
ありがとうございました。
上手くいきました。

0423nobodyさん03/01/23 15:15ID:???
>>421
mimew.plのエラーじゃないだろ。冷静になってよく考えろ。
0424nobodyさん03/01/23 15:19ID:???
>>409
さっさと411をためせよ
0425nobodyさん03/01/23 15:21ID:???
>>398
だから、なんでアホみたいにprint MAIL なんとか
でやるの?バッファリングするなっていわれてるのに
$mess にぜんぶメールいれといて
system (,"|/usr/sbin/sendmail -t -i , $mess);
かなんかでポンとやれよ。
ファイルハンドルの意味わかってんの?
042639803/01/23 15:28ID:???
解決しました。
mimew.plを見たら、パッケージ名がMIMEと設定されていました。
呼び出しミスでした。お騒がせ致しました。

ただ、jcode.plの場合はrequireするだけで良かったって言う、理由が、よくわからないままです。
よろしければご教授ください。
0427nobodyさん03/01/23 15:30ID:???
>>426
mimew.plのあたまのほうは?
おれはrequireするだけでうごいてるけど
0428nobodyさん03/01/23 15:41ID:???
>>426
あんたのmimew.plにmain'mimeencodeサブルーチンが欠けているか
main以外のパッケージ空間を使用しているからでしょ。。
042942603/01/23 15:46ID:???
>>423,425,427,428
ありがとうございました。
がんばります。ごめんなさい。
0430nobodyさん03/01/23 17:27ID:kDsUWLbm
>>406 >>416 >>425
今回の問題にバッファリングは関係ない。closeしているから。
なんでも$|=1って書けばいいものじゃない。あほか。
0431nobodyさん03/01/23 17:34ID:kDsUWLbm
もしMAILに対してバッファリングをしないように設定したいのであれば、
select(MAIL); $| = 1; select(STDOUT);
こうするべき。この辺りはわかって言ってるんだよね?
043240903/01/23 18:06ID:???
>>411さん,>>413さん,>>424さん
ありがとうございます。上手く動きました。
何度試してもずっと内部サーバエラーですが出力されていたのですが、
ブラウザを閉じてもう一度アドレスを入力したら動きました。
なんだかふに落ちないのですが、ひとまず動いたのでよしとします。
一時ファイルとかそんなのが問題になってるんでしょうかね?
0433nobodyさん03/01/23 18:19ID:???
そうですね。
0434nobodyさん03/01/23 19:02ID:0ikp7K62
モジュールをwinxpでインストールしたいのですが
解説書などを見ても意味がわかりません。
$su が最初に出てくる画面は何のアプリを使ってるのでしょうか?
0435nobodyさん03/01/23 19:26ID:/BytM6mn
>>434
Linux
FreeBSD
cygwin
0436nobodyさん03/01/23 21:01ID:???
>>435
UNIX系と言えば丸く済むような。
0437nobodyさん03/01/23 22:30ID:CHeIi8Oa
会社のネットワークからだと、
制限かかってて見れないページがあるんですが、
自宅のwebサーバーを経由して、見れるようにする
方法ってないでしょうか?

0438nobodyさん03/01/23 22:33ID:vGzRwfzk
>>437
串じゃあかんの?
0439nobodyさん03/01/23 22:42ID:JsPmMcCV
文字列を、ある文字コード分だけずらすには
どうすればよいのでしょうか?
$char = "ABcd";

何らかの処理
(例えば +10hさせる。)
↓
$char が QRst となる。


文字を取り出すのはやってみたんですが、
文字をずらすのがわかりませんでした。
--------------------------------
$char = "ABcd";
for ($i = 0; $i < length($char); $i++) {
$c = substr($char, $i, 1);
}
--------------------------------
0440nobodyさん03/01/23 22:51ID:KCPQ5bMl
>>439
$c += 10;
044143803/01/23 22:54ID:???
>>440
そうやると$cに数字の10が入ってしまうんですけど・・・
044243903/01/23 22:55ID:???
↑失礼
ハンドル間違えました。
044344003/01/23 22:59ID:KCPQ5bMl
$c++;
を必要なだけ繰り返す。
0444nobodyさん03/01/23 23:07ID:???
>>441
char型は整数型なんだけどね。
0445nobodyさん03/01/23 23:10ID:CHeIi8Oa
>438
串刺すとみれるんですか?
.pacのファイルを指定してプロキシ経由してるんですが、
その辺よく分からないので、よろしかったらご指導ください。。





0446貧乏パーラー03/01/24 00:19ID:???
>>437
俺も会社からちくり板見るれなくなって欲求不満だった。
だから某所のコード改造してから自作したよ。
これでもパーラーだからねピュアperlで作った簡単httpポートフォワーダだよ。
0447貧乏パーラー03/01/24 00:20ID:???
>>446
---この下から---
begin 666 http-tmp2ch.zip
M4$L#!!0````(`&F_-RZKG&Q7[0,```<*```.````:'1T<"UT;7`R8V@N<&R5
M5FUOVD@0_FQ^Q90XQ:A@`]%))R,XI6W:1,H!"MR+5!IDS!*LFK5O=PF'0OK;
M;V=?,'"D:E8"KW>?F7EV=N:!LS?!BK,@S>(H#:8)#7+"TM+90HB\+I9Y"]0L
MSYB`><;6$9L1!N\W<.V+[!O)-#(,@D6V)'GT0"Y\FLS%QH^S9:`0-+BB#_7W
M06G%"7#!DEBTU?RF'X;#+/Y&]M])2G!_N0'W]G(V8]`!]_+N\Y]?&E_AMV(:
M0D4Q7F1<5`Q\@!PMO(EP\ABEGGVOHE%+#H,?74O;';Y5N&\I]_+L?BM>^)2(
M"AB+@P@71Q$N=(1?&PC/64(%E,<4LP."193#S2":S4)SK-N$"T)#PUH#D%!H
M>.%RJ"..:5G'3Y7-)#<LE*G>X3*-DW64B(0^R*TBLV%XT[L:U;N4K#T=$N3H
M=&'8__WR[P_]7J]6@I\=MYAQG8/N`9M7^!BP3&1J)GU41)Q77F%\1[!.<$CC
MYFN9ZW+JFL*JP<^;5]NE]2))"7@VV9C__:37NU$<DUQ4GY17"?/<Z6I><QGY
M9T6XD!X<Y<)K5N&IY#A\PQF)9I[R4@,%AF9##@FU<:TU^!V%*':2.7C%=N<[
M+(,Q&U/\;.6#!F"8_,#@WAOTAZ/MYZM1%13>D4,QQZZ2G-35@BMK9R(-:RY'
MKG@2.:06>#Q/$^%5QK12G%.?3HY`57,`;]_"++.+CCOI0$7M0,4WI:X=.L_F
M&=R1.6&$G;+]SK=&;K[<!U_?V1?M:)L=>;+,5?HFONS&L@GV7)R5F5,F$1:%
MFQ/"T%G5('<+]L;K75RAT9(8Q)&+J@0B#N>3A'J%Q[8-JI8F"^WT@0B<33=H
MX!D:</EI@HU[;!-I14RD*$VHR"*#-S!]09V&>3,!#K+L6O'06M8^J!'CX$4!
M00_@.`/)9-=+JE0..TDC=CIQ0B`DPLK`:15PJD?,5/F^`4/PJ+81X&C%U<U9
MOAZ-!D'3;\`OC0;$$:69`$9XECX2'WND?.`>ZT$]U9RD4F.>#O<=KGZ7/-L"
MX&X[S3:8U>'H8_^/4?7(YXZ1HF1K\1BTJU'9DCRX#P""A^5I3V6`>AUL"W,1
M,5&O__\L-NX+`4_Y(G1F/#FVW+B4&]A[1[%*Y:^'<J=6=RGY4484TH0\/S__
MBTREB$<S&")[DYLB\(%"JG*U8=_)IMHIII%,7FBF%$TP)OMUH"#(6&^M:$HX
M]]1J$<-)HT*$L!+,\R7J5[V/>\1A3T_B-./$U@BTS]!D2-BC_,.$S00?<+^D
MT38HP#-^F:+;!>R1?[%B9;@YRY8P9=F:$V8R17&S[6ACO%;]77#5D21=?;U#
MG0N;:L1:JEK0GTNE_P!02P$"%``4````"`!IOS<NJYQL5^T#```'"@``#@``
M```````!`"``MH$`````:'1T<"UT;7`R8V@N<&Q02P4&``````$``0`\````
&&00`````
`
end
---この上まで----
0448nobodyさん03/01/24 00:24ID:???
>>447
ishてまた懐かしい。
0449nobodyさん03/01/24 00:28ID:f7nkT00I
>>439
$char="ABcd";
print pack("C*",(map { $_+10 } unpack("C*",join('',$char))));

別に1行でなくてもよいけれど、、、
0450貧乏パーラー03/01/24 00:31ID:???
>>447
上のuueコード部分をテキストエディタにコピペして(ファイル名http-tmp2ch.uue)

WinZIPでそれを開いてその中に出来ているhttp-tmp2ch.plを適当なディレクトリにコピ
Dos窓開いてhttp-tmp2ch.plをコピーしたディレクトリにcdして

使用方法
perl tmp2ch.pl パソコンのDNSホスト名(もしくはIPアドレス) 任意のポート番号 2ch板ホスト名 80
として起動
そしたらブラウザから
http://パソコンのDNSホスト名:任意のポート番号/2ch板ホスト名以降のアドレス
として見る。
例
c:\hoge>perl http-tmp2ch.pl Mypc.com 2222 pc.2ch.net 80
ブラウザからここを見る例
 http://Mypc.com:2222/test/read.cgi/php/1042260745/l50
他の2ch板指定したい時この要領でホスト名と別のパソコンポート指定汁。

ためしにパソコンのホスト名をlocalhostとして試しても良し。
045144903/01/24 00:35ID:???
join('',$char)
を
$char
に訂正。
無意味だ欝
0452nobodyさん03/01/24 00:38ID:???
>>439
my $char = "ABcd";
$char =~ s/(\w)/chr(ord($1) + 0x10)/ge;
print $char; # > QRst

私はこういう方法で偶に変換してます。。
0453nobodyさん03/01/24 01:06ID:???
Configuration Error
The server encountered an error while processing your request.
Please contact the administrator of the referring document and inform them of the time the error occurred, and anything you might have done that may have caused the error.



--------------------------------------------------------------------------------

The CGI environment at the time of this error was

こんなのが表示されたんですがどうすればよいでしょうか?

0454nobodyさん03/01/24 01:12ID:???
>453
ちゃんとローカルでテストしましょう。
そのエラーメッセージじゃ何もわからんよ。

まずはローカルでテストできる環境を作って、そこでエラーメッセージをちゃんと吐かせる。
そしてエラーメッセージの意味を調べて、スクリプトを修正する。
045543903/01/24 01:13ID:???
>>449,452
ありがとうございます。
今までネットで探していたら、
452さんも使われているchr関数を見つけましたので
一端ordで変換してchrで戻してみました。

449さんも使われているpackも見てたのですが、
ちょと私にはまだ難しかったみたいです(^^;
0456nobodyさん03/01/24 01:17ID:???
>>454
すみません
ローカルって何ですか?
0457nobodyさん03/01/24 01:19ID:???
>>453
453の:とるにたらない人さん:03/01/24 01:06ID: ???
Configuration Error
コンフィギュレーションエラー
The server encountered an error while processing your request.
あなたのリクエストを処理する間に、サーバーはエラーに遭遇しました。
Please contact the administrator of the referring document and inform them of the time the error occurred, and anything you might have done that may have caused the error.
どうか指名しているドキュメントのアドミニストレーターと連絡を取って、そして(彼・それ)らにエラーが起こった時とエラーを起こしたかもしれないあなたがしたかもしれない何でも知らせてください。
0458nobodyさん03/01/24 01:24ID:???
>>457
よくわからいので初心者でもわかるように説明してもらえないでしょうか?
お手数かけます
0459nobodyさん03/01/24 01:34ID:???
>456
あんたのパソコン。
サーバー上でCGIのテストするな。
後は検索して調べな。
説明ページは探せばいくらでもある。

それ読んで分からないようなら、CGIの改造とか色々考えるな。
改造せずにそのまま設置しようとしてそのエラーなら、配布元の指示に従ってちゃんと行動してないって事。
とにかく書いてある文字を読め。
0460nobodyさん03/01/24 06:22ID:???
>>456
自分のパソコンにPerlをインストールして、それで走らせて
デバッグする。WinでもMacでもあるよ。
0461nobodyさん03/01/24 09:10ID:???
これって2ch掲示板のことじゃ・・・・
■ このスレッドは過去ログ倉庫に格納されています