Perl コーディング初心者質問コーナー Part25
で、それのどこが【Perl コーディング】と関係ある訳?
ちょっち質問です。
HTMLを出力した後に一度バッファをフラッシュしてから
時間のかかる処理をしたいのですが
どのように書けばよいのでしょうか?
954 :
953:03/07/23 14:37 ID:V4h+SVeU
ageわすれますた。
ついでにもう一つお伺いしたいんですが
複数の変数やら配列を undef する場合
一個づつ
undef $val; undef @array; undef %hash;
と書く以外に方法ってあるでしょうか?
ちょと面倒くさいなと思いまして。
あぼーん
undef $val @array %hash;
958 :
953:03/07/23 15:46 ID:???
>>956 ありがとです。
>>957 print $HTML;
$|=1;
sleep 5;
とやると出力を拝む前にシッカリ sleep していて
何だかフラッシュされていない気がするんですが
どういうコトなんでしょう?
>>958 httpサーバが処理が全部終わるまで待ってる。
Perlが終了した時点で出力する。
>>958 オートフラッシュはprintするより前で
場合によってはソースの先頭でもいいし
961 :
967:03/07/23 16:48 ID:???
そだよ、960さんの言うように
$|=1;
print $HTML;
sleep 5;
ってしなきゃ。
962 :
953:03/07/23 16:59 ID:???
なるほど。
print の前に書くんですね。
皆さんアリガトでした!
Perl/tk[試し中]
>>942 ありがとう:こんな方法もあるんですね。勉強になりました。
>>943 ありがとう:バッチリ!です。スッキリ!です。感謝です。
気になるのは wperl.exe でも支障はないのでしょうか?
リファレンス(?)で悩んでます
ニュースグループのグループリスト取得するものですが、$nntp->list の所の説明を読むと
> アクティブなすべてのニュースグループについての情報を取得する。戻り値は、
> グループ名をキー、配列へのリファレンスを値とする、ハッシュへのリファレンスである。
> 値が指す配列は、グループの最初の記事番号、グループの最後の記事番号、
> グループについての情報フラグを要素に持つ。
と、あるのですが @$group{$_} を print すると ARRAY(0x33174ec) とか表示されてしまいます
イメージ的に 最初の記事番号 最後の記事番号 フラグ と表示されると思ったんですが…
use strict;
use Net::NNTP;
{
my ( $nntp, $group );
$nntp = Net::NNTP->new( 'some.what.news', Debug => 1 );
$nntp->reader;
$group = $nntp->list;
foreach ( keys %$group ) {
print "N=$_ " . "V=" . @$group{$_} . "\n";
}
$nntp->quit;
}
>>965 @{$group->{$_}}ちゃうんか。
>>966 表示するようになったけど、全部同じデータでしかも、"3" というデータしかない…。
俺が思っているデータイメージは
$group = (
[ 'name', [ 1, 2, 3 ] ], # name はグループ名で、1,2,3 ... のリストがグループの記事番号とかのデータ
・
・
・
(以下略)
);
と、思ってるんだけど、間違いないカナ?
その語尾はやめれ
なんで 3 というデータしか表示されないか解った。
print に渡した時にはスカラー値として、リストのデータが 3 あるから、
3 としか表示されなかった。foreach でもう一回ループを廻すか、
join とか使うしかないのね…。
# 青らくだ本買わないと駄目だぁ…。
$group = $nntp->list;
foreach $name ( keys %$group ) {
print "N=$name\n";
foreach ( @{$group->{$name}} ) {
print "\t$_\n";
}
}
# それにしても、グループの数が物凄いんですが…。
970 :
nobodyさん:03/07/24 16:26 ID:kzmo+pjp
rand は時間で数字が決まります。
完全にランダムにするか、2回連続で
同じ数字は出ないようにする方法は?
rand が時間によって乱数を生成するとはマニュアルのどこにも載ってないが?
srandしてねーだろ。
>>971 ( ´,_ゝ`)プッ マニュアルダッテ
>>974 ( ´,_ゝ`)プッ ジカンデキマルノハマチガイナイヨ
モットベンキョウシヨウナ…
>>975 ( ´,_ゝ`)プッ マニュアルシラナイヤツニイワレタクナイヨ
アトオレ971ジャナイカラ。モウソウハ ヤメヨウネ
>>970 ID:kzmo+pjp ヴァカ丸だし晒しあげ
979 :
nobodyさん:03/07/24 17:28 ID:MQ0CG0Oj
次スレまだぁ〜?
randが時間で決まると言うか、perl5.004以降はsrandを省略すると
srand(time)が自動的に実行されるってことだろ
>>970 完全にランダムも続けて同じ数字が出ないようにするのも
なんらかで出た値を保持する以外にないよ
次スレ立てないなら埋めるぞ
>>982 <q cite="
http://www.kt.rim.or.jp/~kbk/perl5.doc/perldelta.html">
srandのデフォルトの種はtimeが使われていましたが、これは変更され
ました。現在では、予測するのが困難なシステム依存な値の激しい
(heady)組み合わせで、大部分の everyday purpose に十分なものです。
5.004以前では、srandを最初に呼ぶことなしに引数なしでrandを 呼んだ
場合、ほとんど、ひょっとしたらすべてのマシンで同じ乱数列を得ること
になっていました。現在、perlがそれ以前にsrandを呼び出 していないのに
randを呼び出しているのを検出したときに、perlは デフォルトの種を使って
srandを呼びます。5.004以前のシステムで実行するかもしれないような
プログラムでは、今でも srand を手作 業で呼び出すべきですし、あなたが
デフォルト以外のものを種としたい場合にももちろんそうすべきなのです。
</q>
うめ
梅。
うめー
おっぱい
ランダムに文を表示するやつを持ってるんだけど
その文章をリロードしても変わらないようにしたい。1日くらい。
そういうのって出来ませんかね。
↓今の状態
#! c:/perl/bin/perl
# おみくじを引く
$role = int(rand 6);
if($role == 0) {
$kuji = '大吉';
}
(略)
else {
$kuji = '凶';
}
# CGIヘッダの出力
print "Content-type: text/html\n\n";
# HTMLの出力
print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\">\n";
print "<html>\n";
print "<head><title>Perlおみくじ</title></head>\n";
print "<body><p>今日のあなたの運勢は……<big>$kuji</big>です。</p>\n";
print "</html>";
なんだ、ばかばかしい・・・
>989
同じIP && 異なるマシン(同じ世帯の別マシン) → IPと日付を使った数字をsrandの種にする
異なるIP && 同じマシン(ダイヤルアップ接続) → クッキーを使う
異なるIP && 異なるマシン(誰が見ても変わらない) → 日付をsrandの種にする
梅
_∧_∧_∧_∧_∧_∧_∧_∧_
デケデケ | |
ドコドコ < 次スレまだーー? >
☆ ドムドム |_ _ _ _ _ _ _ _ _ _|
☆ ダダダダ! ∨ ∨ ∨ ∨ ∨ ∨ ∨ ∨ ∨
ドシャーン! ヽ オラオラッ!! ♪
=≡= ∧_∧ ☆
♪ / 〃(・∀・ #) / シャンシャン
♪ 〆 ┌\と\と.ヾ∈≡∋ゞ
|| γ ⌒ヽヽコ ノ ||
|| ΣΣ .|:::|∪〓 || ♪
./|\人 _.ノノ _||_. /|\
ドチドチ!
次スレ建てる人は
>>4-6 辺りの dead link も調べてくれ(w
>>980 あんがと。
すまんのぉ、青らくだ本持ってないから、その辺全然解らんのよ。
マニュアルサイト行ってもどこを読んでいいのやら、全然検討違いな所読んでた<俺
( ゚∀゚)つ〃∩2ゲット2ゲット2ゲット
999
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。