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

【Perl】初心者コーナーPart9

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。01/12/28 23:21ID:SPLRvqQi
いらっしゃーい、Perlのコーディングで困ってる人のスレです。

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

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

参考書籍はこちら【【Perl,CGI】参考書籍 第2版 】
http://pc.2ch.net/test/read.cgi/php/988809842/
CGIの質問はこちら【CGIだけど、なんか質問ある?part5】
http://pc.2ch.net/test/read.cgi/php/1009331505/
その他の雑多な話題は、【CGIに依存しないPerlの話題一般】
http://pc.2ch.net/test/read.cgi/php/991313362/

過去ログ、その他の役立ち情報は>>2-10を見よう。
0554名無しさん@お腹いっぱい。02/02/05 03:25ID:fmBbp0lc
Tスイッチを付けると @INCの価が変わるんですが( .がなくなる)
そんなもんなんですか?
5.005_03です。
0555名無しさん@お腹いっぱい。02/02/05 03:36ID:???
そんなもんですと言えば良いのか? w
カレントをコマンドサーチパスに加える事の危険性と
意味は同じだと思うが。
055655402/02/05 04:17ID:???
>555
Tスイッチについて調べても、 @INCについて触れているものがなかったので
@INCは自分の環境でしか変わらないのかなぁ思い質問しました。

> カレントをコマンドサーチパスに加える事の危険性
は知らなかったのですが、
カレントディレクトリにスクリプト内で使われているのと同名のファイルを
他人に勝手に置かれた時に、意図しない動作をする可能性があるから危険
ということですか?
0557カリハン02/02/05 10:14ID:???
>>541
それがですね。スナックのHPと上記アップローダだけおいてるんですが、
HPのほうは1日多くても20アクセス(内半分は従業員)ほどなんです。
0558名無しさん@お腹いっぱい。02/02/05 17:55ID:???
>>556
>カレントディレクトリにスクリプト内で使われているのと同名のファイルを
>他人に勝手に置かれた時に、意図しない動作をする可能性があるから危険

その通り。

ついでに-T付けると$ENV{PERL5LIB}とかも無効になるから。
0559名無しさん@お腹いっぱい。02/02/05 20:07ID:kMSeXYwX
掲示板を作りたいのですが、
書き込みフォームは別に作る必要があるのですが
ログをとりたいのですが、
これだと入力したのを出力するだけの事しか出来ません。
誰か改造を・・・。
#!/usr/local/bin/perl

#データの受け取り
read( STDIN, $query,$ENV{ 'CONTENT_LENGTH' } );

@in_params = split( /&/, $query );
foreach $in_param ( @in_params ) {
( $key,$value ) = split( /=/,$in_param );
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-f0-9])/pack('C',hex($1) )/ge;
$param{ $key } = $value;
}

#結果の出力
print "Content-type: text/html\n\n";
print $param{ 'name' };
print "<br>";
print $param{ 'gimon' };
print "<br>";
exit;
0560名無しさん@お腹いっぱい。02/02/05 20:11ID:???
>>559
意味がわからない。
説明もプログラムの意図も。

あ、ファイル!ファイル!

open

print

<>

close

など勉強して。
0561名無しさん@お腹いっぱい。02/02/05 21:20ID:???
その前に日本語を勉強して。
0562名無しさん@お腹いっぱい。02/02/05 22:05ID:???
日本語を勉強し終わったら常識を勉強して。
0563名無しさん@お腹いっぱい。02/02/05 22:11ID:Zu+hD/6k
ゲームを作ろうとして頑張ってるんですが、
まず最初に、Login画面を出して、
個人の認証をおこないます。

その次に、その認証した人用に、常にHTMLを反映させたいのですが、
どうすればいいでしょうか?

たとえば、モナーという人がログインしたら、
常に、モナーという人を意識したページにしたいんですが。

誰か、教えてくださいませ。
0564名無しさん@お腹いっぱい。02/02/05 22:15ID:???
>>563
cokkieで良いのかな?
$ENV{"HTTP_COOKIES"};
書き込み方は勉強して。

もしくは生成するページのリンクを

/path/a.cgi?name=モナー

として常にモナー用のデータを出力するようにするとか。
056556302/02/05 22:23ID:Zu+hD/6k
>>564
そうなんですよね。
クッキーでやるのがベストかな。

>もしくは生成するページのリンクを
>
>/path/a.cgi?name=モナー
>
>として常にモナー用のデータを出力するようにするとか。
これだと、誰かが不正に利用してしまいそうで、
(まぁ、パスワードも常に出力するというのもありだけど)
厳しいかなぁと。
他のログインを利用してるページを見ると、
この方法は使ってないようですし。
0566名無しさん@お腹いっぱい。02/02/05 22:33ID:???
もうないけどrobotmailっ言うwebメールがこの方式。
もちろん暗号化+httpsだったけど。
056756302/02/05 22:40ID:Zu+hD/6k
ふむふむ。

なんか、もっとスマートな方法はないでしょうか?
クッキーも拒否してる人がいないとは限らないし。

ヘルプミ〜
0568名無しさん@お腹いっぱい。02/02/05 22:42ID:???
COOKIEの時点でガリガリにスマート。
0569名無しさん@お腹いっぱい。02/02/05 22:43ID:???
そこまでする奴は君のサービスも迷惑と感じる人。
057056302/02/05 22:46ID:Zu+hD/6k
やはり、クッキーですか。

クッキー以外になにかあればと思ったのですが。
教えてくれて、どうもありがとうございました。
0571セキュリティホールについて02/02/05 23:19ID:Iem+OJzp
大変御無沙汰しています。教えていただきたいことがあります。
WEBはセミプロ程度、WEB言語系は素人若干書き換え程度です。
現在、ボランティア系の団体で複数の応募フォーム、SSLPGPクレジットカード引き落としなどを
使ったホームページを担当しています。
若干コーディングできる方から、簡易計算自動入力、曜日自動入力を強く勧められて以下の
スクリプトを頂きました。
曜日自動入力については、動作して入力欄がブランクでなく選択なので、安全上問題ない気がしますが、
自動計算に関して、動作もおかしく、それよりも入力欄ブランクで、タグその他
記述された場合、セキュリティ面でかなり不安なのですが、いかがでしょうか。
私個人としては、買物カゴ式の別CGIをあてる方が良いのではないかと思うのですが、
どうか教えて下さい。宜しく。 (長くて乗らないので一部除く)

<!-- saved from url=(0022)http://internet.e-mail -->
<HTML>
<HEAD><TITLE>簡単な入力検査の例</TITLE>
</HEAD>
<BODY>
<H3>簡単な例</H3><HR>
<FORM NAME="ValidForm">
5/18
<INPUT TYPE="TEXT" NAME="T0" SIZE="3">
人
<p>5/19
<input type="text" name="T1" size="3">
人</p>
<p>合計
<input type="text" name="T2" size="3">人</p>
<p>申込金(人数×2000円)<input type="text" name="T3" size="20">円</p>
<p>入金日 2002年<select size="1" name="D1">
<option value="1">1</option>
</select>月<select size="1" name="D2">
<option value="1">1</option>
</select>日<input type="text" name="T4" size="3">曜日</p>
<p> </p>
</FORM>
</BODY>
</HTML>


0572Name_Not_Found02/02/05 23:25ID:IJ+Ly9Q8
すごく初歩的なことで壁に当たっています。
相対パスの記入の仕方で
../みたいなのってもっと..が小さくないといけないと思うのですが
どうやって打てばいいでしょうか?
よろしくお願いします。
0573名無しさん@お腹いっぱい。02/02/05 23:29ID:Zu+hD/6k
>>571
あなたの質問に答えてあげたいけれど、
微妙に日本語の意味がわからないです。

でも、タグが心配なのであれば、
Perlの正規表現を使って除去すればいいのではないでしょうか?
0574名無しさん@お腹いっぱい。02/02/05 23:29ID:???
>>571
情報が少ないのでなんとも言えません。
HTML・JavaScriptの話なら板違いです。

>>572
>../みたいなのってもっと..が小さくないといけないと思うのですが
意味がわかりません。
0575名無しさん@お腹いっぱい。02/02/05 23:32ID:???
>>572
フォントの問題だと思う
等幅とそうじゃないのだと点の大きさちがうから
どっちでもよい
0576こぐぅ02/02/06 00:00ID:1lbXw0DS
2チャンの板みたいな掲示板が作りたいのですが
根本的なことから分かりません。
誰か無知な私を助けてください。
0577名無しさん@お腹いっぱい。02/02/06 00:06ID:???
簡単に言えば掲示板の掲示板。
ほら、スレッドって一般的なサイトで一般的にある掲示板形式じゃん。
0578名無しさん@お腹いっぱい。02/02/06 00:08ID:???
>>576
どうぞ。
http://piza.2ch.net/read4.txt
0579名無しさん@お腹いっぱい。02/02/06 00:12ID:???
>578
それ Cじゃん
0580名無しさん@お腹いっぱい。02/02/06 06:12ID:???
>>579

ほぼそのままで効率の悪いperlプログラムに変換できるでしょ。Cなら。
0581名無しさん@お腹いっぱい。02/02/06 09:17ID:???
変数って普通に使ってると、
グローバル変数になりますが、
myとか使って、スコープを設定すると、
メモリーの使用量に変化は出ますか?

なるべく、my使ったほうがいいでしょうか?
0582名無しさん@お腹いっぱい。02/02/06 09:27ID:???
メモリは同じ変数を使いまわす方が少なくすむはず。
しかしそれ以前の問題で、myを使った方がいいと俺は思うね。
0583 02/02/06 10:47ID:???
初心者過ぎて話にならないと仰らずに
入門者のおいらにも教えて下さいな。
JAVAやクッキーがオフだと別のページに
飛ばしてしまう様なcgiってありますか?
これってcgiを使わなくてもできますか?

0584名無しさん@お腹いっぱい。02/02/06 11:04ID:???
>>583
マルチ氏ね
0585名無しさん@お腹いっぱい。02/02/06 11:08ID:???
http://pc.2ch.net/test/read.cgi/php/1009331505/547
  547 名前: :02/02/06 10:39 ID:PbQtpnzC
  JAVAやクッキーがオフだと別のページに
  飛ばしてしまう様なcgiってありますか?
  これってcgiを使わなくてもできますか?
  初心者過ぎて話にならないと仰らずに
  入門者のおいらにも教えて下さいな。

http://pc.2ch.net/test/read.cgi/php/1003132904/877
  877 名前: :02/02/06 10:34 ID:PbQtpnzC
  JAVAやクッキーがオフだと別のページに
  飛ばしてしまう様なcgiってありますか?
  これってcgiを使わなくてもできますか?
  初心者過ぎて話にならないと仰らずに
  入門者のおいらにも教えて下さいな。
0586名無しさん@お腹いっぱい。02/02/06 15:22ID:JVnz6bAn
Perl初心者です。
文字列前後のホワイトスペースの取り除き方を教えて下さい。
PHPだと、trim関数でできてしまいます。
例:$REPORT = trim($REPORT);

Perlでの方法を教えて下さい。
文字列の中の改行は残したいです。
よろしくお願いします。
0587名無しさん@お腹いっぱい。02/02/06 15:23ID:ovT8yWtO
$REPORT =~ s/^\s//;
0588名無しさん@お腹いっぱい。02/02/06 15:57ID:???
for($REPORT){
s/^\s+//;
s/\s+$//;
}
0589名無しさん@お腹いっぱい。02/02/06 16:11ID:JVnz6bAn
>587さん
>588さん
出来ました。
ありがとうございました。
またよろしくお願いします。
0590kopt02/02/06 18:11ID:BylxzAgo
すみませんGoogleで探せといわれると思いますが、
探したものは説明がないので参考にならないんです。
というわけで,質問させてください
ファイルアップロードスクリプトでファイルの制限(GIFとかJpegとか)させたいのですが、
どのようにすればいいかヒントをください。
0591名無しさん@お腹いっぱい。02/02/06 18:22ID:???
>>590
スクリプトがないから何とも言えないけど
指定したファイルの拡張子以外のアップロードできないようにすれば?
そうするのはどうするのってのはスレ違いね。
0592名無しさん@お腹いっぱい。02/02/06 19:16ID:???
>590
精度低いけど,ファイルのContent-Type見るとか。
0593kopt02/02/06 19:17ID:BylxzAgo
>>591
スレ違いですか? でも、このスレって初心者のスレでしょ?駄目ですかねぇ
どのスレ行っても
ここで聞くなとかいわるんだろうなぁ
0594名無しさん@お腹いっぱい。02/02/06 19:24ID:???
>593
とりあえず>>1を読んで、1〜3をしっかりしよう。
そして君は「ヒントが欲しい」と言った。
>591はヒントを教えた。
それでいいだろ。
0595名無しさん@お腹いっぱい。02/02/06 19:25ID:???
ウザーウザーウザー
スレ違いって所しか読んでないの?

>>591 >指定したファイルの拡張子以外のアップロードできないようにすれば?
>>590 >精度低いけど,ファイルのContent-Type見るとか。
この二つの提案に食いつく気はないの?

スクリプト改造工房 Part4
http://pc.2ch.net/test/read.cgi/php/1012839651/l50
スクリプトのソース持参して上記スレに移動しろ
0596名無しさん@お腹いっぱい。02/02/06 19:26ID:???
>>590ってのは>>592の間違いね
059759002/02/06 20:17ID:BylxzAgo
>>595
うーん,もちろんそれは候補にあるんです。
それをかけないんですよね。
まぁ、こんな厨房じゃ書くなって事ですね。

>>594
ヒントを教えてもらったのは確かですので感謝しマース

0598ファイルロック02/02/06 21:15ID:6W+ZcRg7
たぶん、もう何度も話題にのぼってると想うんですが。。
今一どうすりゃ安心なのかわからないファイルロック。
掲示板のログファイルの保護の為にファイルロックする場合、
書き込む時に

open(IN, ">>$file");
flock(IN,2);
print IN "$data\n";
close(IN);

この程度で、十分役割を果たすものでしょうか?
ログファイルの読み出しの時にもロックってかけます?

またこのflockの汎用性はどの程度ですか、NTやらは抜かして
0599名無しさん@お腹いっぱい。02/02/06 21:33ID:???
掲示版なるものを書いた事が無いんで良く分からんのだけど
結局cgiのファイルロックってのは、行き着く所は
システムコールのアトミック性なんだな。
で、上の書き方だと、open と flockの間に時間的なスキマが絶対有るだろ?
もしその間に100人が同じファイルをopenしちゃったら、
ファイルポインタの加減で死ぬ可能性が有るってこった

それがどれ位掲示版で危ない事なのかは、漏れには分からない。
0600名無しさん@お腹いっぱい。02/02/06 21:40ID:???
何か変な説明だな
例えばファイルが100バイトだとするだろ?
で、openしてflockする前に他のプロセスが同じファイルを開くだろ?
そうすると、そのプロセスは全てファイルポインタを100バイトに
あわせて、そこから追記し始めると言う訳
0601ファイルロック02/02/06 21:41ID:6W+ZcRg7
>>599
なるほど、氏ぬ可能性がある・・と。
でも、まぁ絶対は無いモンみたいだからこれでいいかなぁ
0602名無しさん@お腹いっぱい。02/02/06 22:11ID:???
だいぶ遅スレ。

gifの判別はヘッダを見るべし!

gif89aとか書いてある。
jpgはダンプしたこと無し。
0603名無しさん@お腹いっぱい。02/02/06 22:16ID:???
>602
PNGや JPGもヘッダでわかるはず。
0604名無しさん@お腹いっぱい。02/02/06 23:09ID:???
598じゃないが
>>600 ってことは、書き込む時に
sysseek HANDLE, 0, 2;
とすればいいのだろうか?
0605名無しさん@お腹いっぱい。02/02/06 23:34ID:???
それじゃappendにならないじゃん
0606名無しさん@お腹いっぱい。02/02/06 23:47ID:+a0hOzna
お願いします。
$_ =~ s/ー/あ/g;
ってやったらエラー出ます。
$_ =~ s/!/あ/g;
だったら出ません。
どうしてですか?
漢字コード変換したりしていろいろやってみたんですが、うまくいきません。
よろしくお願いします。
060760502/02/06 23:48ID:???
ああ、ごめんごめんやっぱり中途半端だった (笑
ただ>604氏の方法じゃ上手く行かないと思うよ
ファイルポインタはプロセス間で共有されてる訳じゃ無いからね
追記モードの時は SEEK_SET == SEEK_END になってるだけで
上書きするのと何ら変わらない筈だから
後は、書き込む度にwriteの戻り値分SEEK_ENDを進めているだけ
だから、0,SEEK_END とすると他のプロセスが書き込んだ分は無視されてしまうよ

WINは知らないけど、大体同じ様なもんだと思う
(しかし下手な説明だ・・・)
060860502/02/06 23:49ID:???
s/\Qー\E/あ/g;

で如何? 後はquotemetaとかを検索
0609名無しさん@お腹いっぱい。02/02/06 23:53ID:+a0hOzna
>>608
ありがとうございます!
1行目は意味不明でしたが、quotemetaで検索したらいろいろ出てきました。
調べてみます。
0610ブクログラマー ◆eLx2NxJ6 02/02/06 23:56ID:6/WQt+6L
はじめまして。質問させていただいてよろしいでしょうか。

現在 僕は、CGIでメールを送信するページを作ってるんですが
ローカルで、sendmailを実行することはできますか?
0611名無しさん@お腹いっぱい。02/02/07 00:00ID:???
sendmailがあればいくらでも。
0612ブクログラマー ◆eLx2NxJ6 02/02/07 00:04ID:4GVSBAfQ
>>611

Apacheで確認して、その後鯖にうpするやり方で、作ってるんですが
Apacheにはsendmailがついてないようです。
DLすればよろしいんですか?
0613名無しさん@お腹いっぱい。02/02/07 00:08ID:???
OSに依存しそうな問題なのだから自分のOS位書くのが礼儀ではないでしょうか?

後、うpとか言う人信用できないです。
自分のアドバイスでメールばらまきCGI組まれても困りますから。

新しい人をお待ち下さい。
0614ブクログラマー cj3074167-a.itabs1.kn.home.ne.jp02/02/07 00:10ID:???
>>613

礼儀知らずで、ごめんなさい。
うpっていう言葉も2chだから使ってしまいました。

使用しているOSはWinXP(Home)です。
PC上の仮想サーバー(Apache)で、sendmailの機能を使いたい、と考えています。

メールをばらまく行為とかは、考えていません。
その誓いとして、自分のメルアドとふしあなを書いておきます。
無礼をお許し下さい。
0615age派02/02/07 00:15ID:???
鯖がhi-hoです。
それでCGIゲームを置きたくて
とりあえずApacheで動作確認したFFAとEndlessBattleを置いてみましたが
FFAは呼び出しの時点でスクリプトエラー
EBは呼び出しはできたもののどれかひとつでもリンク押すとスクリプトエラー
僕の力じゃどうしようもありません。
何か方法は無いでしょうか?
0616age派02/02/07 00:18ID:???
あ、スレ違いだ!?
すいません、出直してきます(汗
0617名無しさん@お腹いっぱい。02/02/07 00:18ID:???
サーバの設定とスクリプトの設定を一致させる。
できない、わからないならまだ時期ではない。あきらめる。
0618age派02/02/07 00:27ID:???
そうですか、じゃあもう少し調べてみて駄目なら諦めます。
ありがとうございました。
あと、スレ違いすいません(汗
0619名無しさん@お腹いっぱい。02/02/07 00:32ID:???
1行目のperlのパスに気を付けて。
0620名無しさん@お腹いっぱい。02/02/07 01:13ID:???
>>618 この辺引っ掛かってない?
2.使えるプログラム言語は?
Perlのバージョンは4.036です。
http://home.hi-ho.ne.jp/home/faq/service/rweb/rweb_a2.html
0621名無しさん@お腹いっぱい。02/02/07 02:03ID:???
喧嘩売ってるとしか思えんな  (w
0622age派02/02/07 06:23ID:???
すいません(汗)
あの後戻っていろいろやってたらそのまま寝てしまって・・・。
Perlのバージョンはドメインがmaxなので5.6らしいです。
それでパスもやったんですが結局無駄でした(汗
0623名無しさん@お腹いっぱい。02/02/07 06:45ID:???
Kcatch.pm 使ってみ

http://www.kawa.net/works/perl/catch/news.html
スクリプトの冒頭で Content-type 出しておけば大体のエラーは
ブラウザでチェック出来るから



0624age派02/02/07 06:46ID:???
でも5.6でも動かないんだからやっぱ4,036なのかな・・・。
仕方が無い・・・厨房なんで学校いってきます。
本当にすいませんでした・・・。
0625名無しさん@お腹いっぱい。02/02/07 08:08ID:???
#! /path/perl

print "CONTENT-TYPE:text/html\r\n\r\n".$[;

バージョンチェック。
0626まゆ02/02/07 09:37ID:BzGq5BfM
Perlで画像アップロード掲示板を作成していますが、ユーザから
「アップされた画像を任意の大きさに変更したい」と言われましたが
そのようなことができるでしょうか?
ローカルからサーバにアップされた画像をたとえば250×200に変更するとか、
サイズを50Kに変更するといったようなことはできるのでしょうか?
どなたかご存じの方がいましたら教えてください。
また、そんなことはできないよということでも良いのでどなたか教えてください。
0627名無しさん@お腹いっぱい。02/02/07 13:11ID:???
2ちゃんねるで・・・/test/read.cgi/板名/スレ番号/
という形式でcgiが使えているでしょう。
これはどうやっているのですか?
0628初心者02/02/07 13:49ID:???
>>626
要するにgifなりjpgなりを加工したい訳だよね。
ファイルサイズを変えたいと言うことは。

そりゃぁPerlには無理なんじゃないかなぁとか思ってみる。
それとも、そんなモジュールとかあったりするんだろうか。。。

と、検索。
こんなの発見。

GDモジュール(日本語チョウ訳)
http://member.nifty.ne.jp/hippo2000/perltips/gdmemo.htm より。

getBounds
GD::Image::getBounds( ) オブジェクト・メソッド
このメソッドはそのイメージの幅と高さの2つ要素を持つリストを返します。
取得することはできますが、作成したらイメージの大きさを変更することができません。

やっぱり出来ないのかな?
0629初心者02/02/07 13:53ID:???
あった。

copyResized
GD::Image::copyResized(sourceImage,dstX,dstY,srcX,srcY,destW,destH,srcW,srcH) オブジェクト・メソッド
copyと似ていますが、コピー元と出力先に違う大きさを指定することができます。
コピー元と出力先の大きさは、それぞれ (srcW,srcH) と (destW,destH) で指定します。
copyResized()は指定された大きさに合わせてイメージを拡大、縮小をおこないます。

例:

$myImage = new GD::Image(100,100);
... いろんな描画 ...
$srcImage = new GD::Image(50,50);
... いろんな描画 ...
# 25x25 ピクセルの領域を $srcImage から
# $myImageの(10,10)に大きくしてコピーします。
$myImage->copyResized($srcImage,10,10,0,0,50,50,25,25);

---
参考:http://homepage1.nifty.com/smastani/hp/smastani/pc/thumbn.html
0630名無しさん@お腹いっぱい。02/02/07 20:01ID:wErLB+F6
文字列のすべての文字間に例えば/と入れたい場合はどうしたらいいですか?
あいうえお-->あ/い/う/え/お
こんな感じ。
とっても簡単なんだと思うんだけど、文字列置換ではやり方が思いつかないし、
splitとjoinでもなんか区切り文字が必要で、この場合区切り文字は無くて..
頭悪くてすみません。お願いします。
0631名無しさん@お腹いっぱい。02/02/07 20:25ID:???
>630
http://www.din.or.jp/~ohzaki/perl.htm#JP_Split
これが参考になるかな?
063263002/02/07 20:40ID:wErLB+F6
ありがとうございます!!
斜め読みしたかぎり、理解できませんでしたが、
題名からして回答っぽいです。参考にさせていただきます。
0633GIFの加工02/02/07 21:42ID:???
>>629
GIFはたしかUNISYSが版権?持ってて、画像をくっつけるぐらいなら
問題ないけど、加工するとなると権利に引っかかる可能性アリだった
と記憶してる。
pngとかでできないのかな?
0634名無しさん@お腹いっぱい。02/02/07 22:36ID:XOjr1cO9
>>633
最近のGDはGIFサポートしてないのぉ
0635名無しさん@お腹いっぱい。02/02/07 22:59ID:cTwOw5ea
>>630
print join "/",(split //,"aiueo");
でいいんじゃないのん?
063663502/02/07 23:08ID:cTwOw5ea
あ、全角のコトを言ってたのね。
勘違いしてた。ゴメ。
0637age派02/02/07 23:11ID:???
っでぇあんな時間にレスがΣ( ̄□ ̄;)
すいません、重なって書き込みだったらしく気づかずそのまま行ってしまいました(汗
で、あと・・・KCatchの使い方が良くわからなかったです(汗
今までいじる程度しかやってなかったんで・・・。
0638age派02/02/07 23:15ID:???
あ、すいません(汗
今のが623さんへです。

それと、625さん。それをファイルにして動かして見ればよいのでしょうか?
0639名無しさん@お腹いっぱい。02/02/08 05:15ID:???
Perlのチャットを設置しようと考えています。
鯖への負担を減らしたいので、いくつかのCGIをテストしてその負荷を調べることにしました。
CPUの処理時間から負荷を量ろうと
win2000+ActivPerl+AN HTTPDの環境で、スクリプトの上のほうに
$CPU_start = (times)[0] ; #計測スタート

表示部分(普段リロードされる)の下のほうに
$CPU_end = (times)[0];
printf("<DIV align=right>消費時間: %.3f CPU秒</DIV>\n",$CPU_end-$CPU_start);
と書きました。しかしどのCGIも0.000〜0.010秒程度となり、比較ができませんでした。

Perlの負荷(チャットリロード時)を計る良い方法はないでしょうか?
0640名無しさん@お腹いっぱい。02/02/08 06:24ID:???
どう削りたいのかによる
CPUビジーとは限らんだろ、メモリかも知れんし、ディスクかも知れない
Benchmark取れば君の言ってる事は出来るが
それが何の役にたつのやら・・・・
0641名無しさん@お腹いっぱい。02/02/08 09:18ID:???
>>639
自作して自分なりのダイエットを徹底的に行うって言うのも楽しい。
0642まゆ02/02/08 09:23ID:WCH/GiDk
ご回答ありがとうございます。
みなさんのアドバイスを参考に作成いたします。
初心者さま
参考になるページありがとうございます。
0643名無しさん@お腹いっぱい。02/02/08 14:01ID:???
【傲慢】Perl使いに喧嘩を売る掲示板【問題発言】
http://choco.2ch.net/test/read.cgi/news/1013077421/
0644名無しさん@お腹いっぱい。02/02/08 20:05ID:???
Perl-CGIからデータベース接続したいんですけど、
Java-ServletみたいなConnection Poolingってできるんでしょうか?

調べてみたんですが、mod_perlしか見つかりませんでした.
事情によりmod_perlは使えないので、その他の方法でなにかあります?
0645名無しさん@お腹いっぱい。02/02/08 21:30ID:???
>>640-641
ご教授ありがとうございました。
Benchmark.pmの解読にいってきます。
0646名無しさん@お腹いっぱい。02/02/08 22:59ID:???
お金を表示させようと思って、普通に表示したら
お金っぽくないんです。
で、なんでかなぁ?って考えたら、カンマがないからだとわかりました。

$money='500000'
に、3桁区切りのカンマをつけるにはどうすればいいでしょうか?
0647名無しさん@お腹いっぱい。02/02/08 23:02ID:???
$data = "500000";
for($i = 0;$i < $length($data);$i++)
{
if($i % 0 == 2)
{
$res .= ",";
}

$res .= sybstr($data,$i,1);
}
0648名無しさん@お腹いっぱい。02/02/08 23:10ID:???
>>647
早レスありがとうございます。

なるほど、そういう方法もありですか。
(たぶん$length → lengthだと思うのですが)

個人的には、正規表現か、sprintfでなんとかならないかなぁと思ってるんですが、
どうでしょうか?
0649名無しさん@お腹いっぱい。02/02/08 23:18ID:???
>>648
過去ログ、その他の役立ち情報は>>2-10を見よう。

数字を 3桁ごとにコンマで区切る
http://www.din.or.jp/~ohzaki/perl.htm
0650名無しさん@お腹いっぱい。02/02/08 23:18ID:???
そこまで解っていて何故聞く?

$l = reverse $l;
$l =~ s/(\d{3})/$1,/g;
$l = reverse $l;
0651名無しさん@お腹いっぱい。02/02/08 23:19ID:???
あ、そうか。/gで全部処理すれば良いんだ。
0652名無しさん@お腹いっぱい。02/02/08 23:30ID:???
>>644
多分 mod_perl + Apache::DBI じゃないと無理なんでないかな。
0653名無しさん@お腹いっぱい。02/02/09 00:46ID:JKGEpIyz
>>646
$money='500000'
$money =~ s/500000/500,000/;
065464402/02/09 00:47ID:XYP1PySz
>mod_perl + Apache::DBI
やっぱりそうなりますか
ひとつだけperlプロセスを常駐させてそこからConnection受け渡し、とか
いろいろ考えてたんですけど・・・
Hashの参照と中身(データ)を丸ごとプロセス間でやり取りってのは・・・
できないですよねぇ
■ このスレッドは過去ログ倉庫に格納されています