bbs.cgi再開発プロジェクト2

このエントリーをはてなブックマークに追加
817仕事人 ★
あるディレクトリ内のファイルの数だけ
簡単に取り出すにはどうやるといいんだろ
Perl ですー

818未承諾広告※ ◆aiY4htt2.2 :04/02/08 15:31 ID:bc0k0XbW
>>817
@filelist = glob "PATH/*.dat";
819仕事人 ★:04/02/08 15:32 ID:???
おおっ
どもです どもです

んで $ninzuu = @filelist; ってやればいいの?
820未承諾広告※ ◆aiY4htt2.2 :04/02/08 15:33 ID:bc0k0XbW
>>818
Perl のバージョンによっては File::glob の実装(上書き)になっているものもありますので、マニュアルを参照してください。
821未承諾広告※ ◆aiY4htt2.2 :04/02/08 15:34 ID:bc0k0XbW
>>819
$ninzuu = scalar glob "PATH/*.dat";
空の時は、未定義になりますので。
822仕事人 ★:04/02/08 15:36 ID:???
やってみますー
823未承諾広告※ ◆aiY4htt2.2 :04/02/08 15:38 ID:bc0k0XbW
>>822
はいー
あ、時刻がキリ番!>(2**9)*3
824仕事人 ★:04/02/08 15:43 ID:???
Global symbol "$ninzuu" requires explicit package name at f22.cgi line 46. BEGIN not safe after errors--compilation aborted at f22.cgi line 46.

といわれてしまった。トホホッ
825未承諾広告※ ◆aiY4htt2.2 :04/02/08 15:51 ID:bc0k0XbW
>>824
my $ninzuu;
するか、直接条件文に入れるとか。
なんたらかんたら if (scalar glob "PATH/*.dat") > 10;
826未承諾広告※ ◆aiY4htt2.2 :04/02/08 15:56 ID:bc0k0XbW
あ、scalar で評価するとファイル名が出てくるんだった(汗)@glob
my $ninzuu = scalar(grep /\.dat/, glob "PATH/*");
ちょと冗長かも、、、
827仕事人 ★:04/02/08 16:05 ID:???
どもども
やってみましたー

news6の_service に一時間に一回クリア直前に
数えてみよう作戦だー
828動け動けウゴウゴ2ちゃんねる:04/02/08 16:19 ID:bc0k0XbW
>>827
$Check_files = sub {
local *Service_DIR;
opendir Service_DIR, "$ENV{PATH}/public_html/_service" or return 0;
return scalar(grep /*.txt/, readdir Service_DIR);
};

if (&$Check_files > 10) { なんたらかんたら }

みたいなのかな?(^-^;)

♪glob "*" より readdir の方が効率的らしいです。φ(・_・) メモメモ
829某ソレ511:04/02/08 16:25 ID:OrBek328
>>828
・Perlにはポインタがない
・closedir してない
なんでちょっとそのコードは、、
830某ソレ511:04/02/08 16:28 ID:OrBek328
あっ、それでも動くのか、、
何かすいません
831root ★:04/02/08 17:20 ID:???
ごそごそしていて、でかけるの遅れた。

wildcardの展開はとってもコストが高いので、
絶対にopendir/readdir/closedirを使ってください。>>仕事人さん

数だけがわかればいいなら、alphabetical sortは必要ないわけで。
832動け動けウゴウゴ2ちゃんねる:04/02/09 00:40 ID:l59D5Ol5
俺もなんかしたいんだけどどうすりゃ参加できるの?
833仕事人 ★:04/02/09 01:11 ID:???
>>831
うっ そですか
ということは >>828 の方が良いということですか?
834root ★:04/02/09 02:14 ID:???
>>833
Yes.
readdir()だと、ディレクトリエントリを直接開いて順に読むので、
圧倒的に軽いです。
835未承諾広告* ◆aiY4htt2.2 :04/02/09 12:53 ID:L0vxgzDc
readdir は、カレント(./ ../)なども含まれますので幼虫胃です (^o^)
836root ★:04/02/09 13:43 ID:???
>>835
あ、むろん、そうすね。

ぶっちゃけていえば、ディレクトリを頭からcatして、
ちょっと整形してるようなもんです。< readdir

globはまじめに中身全部よんで、それから評価(parse)してる。
parseはとてーもコスト高なんで、やらないですむならやらないほうがいいっす。
837仕事人 ★:04/02/09 20:21 ID:???
readdir にした。

news6 , ex2 , live8 , live7 , live5 , live4 , live3 あたりに入れてみた。

_service の中見てみてね。
838動け動けウゴウゴ2ちゃんねる:04/02/09 20:39 ID:g/dFyMrU
>>837
2004/2/9 20:12:23 CODE(0x810e324)
リファレンスが入っている悪寒?

printf FileHandle qq|%04d/%02d/%02d %02d:%02d:%02d|, (localtime)[5] + 1900, (localtime)[4,3,2,1,0];
なんてすると、もっと綺麗になれるかも(*^-^*)
839某ソレ511:04/02/09 20:43 ID:0DTKvVe2
>>838
ただ単に >>828 のコードで、
"print QQQ $Check_Files"ってやっちゃった予感。
で、その下で直したんでしょう。
840仕事人 ★:04/02/09 21:01 ID:???
$ENV から Linux とか FreeBSD とかはどやって取るの? (Perl)

if(!FreeBSD)
{
なんちゃら
}

とやりたい。
841動け動けウゴウゴ2ちゃんねる:04/02/09 21:19 ID:7+fFe3CM
OSTYPE
842某ソレ511:04/02/09 21:25 ID:0DTKvVe2
"$^O"で取得できるらしい。
でもどんな値が帰ってくるかはわからん。
843サザン ★:04/02/09 21:28 ID:???
$^O

はPerlバイナリがコンパイルされたOS名が入ってますー。
844仕事人 ★:04/02/10 11:29 ID:???
845/ノ、゚ ヮ゚ノ、,ヽ ◆HEHARUKAoo :04/02/10 11:33 ID:UiY+CRAm
>>844
live8鯖に2万人以上も張り付いているですか。
846仕事人 ★:04/02/10 11:40 ID:???
847i/KABOGOD.:04/02/10 11:47 ID:rIjvZFAu
参考資料としてhobbyとかの普通の鯖ではどのくらいなのかとか知りたい
848動け動けウゴウゴ2ちゃんねる:04/02/10 11:48 ID:rIjvZFAu
うほっ
849仕事人 ★:04/02/10 11:48 ID:???
全部に入れてみますかー
数時間たって入っていなかったら教えてください。
850動け動けウゴウゴ2ちゃんねる:04/02/10 12:39 ID:rIjvZFAu
娘。系板って書き込みが無駄に多いだけで
見てる人はそんなでもないのかしらん
851動け動けウゴウゴ2ちゃんねる:04/02/10 17:04 ID:rIjvZFAu
>>844
2004/2/10 13:9:59 23887
2004/2/10 14:9:58 700

おやっ
852仕事人 ★:04/02/10 17:08 ID:???
一回クリアしてみたのだ。
853動け動けウゴウゴ2ちゃんねる:04/02/10 17:24 ID:GBZnqyBk
>>844
2004/2/10 14:9:58 700
2004/2/10 15:9:58 969
2004/2/10 16:9:58 857
2004/2/10 17:0:2 651

今は一時間ごとにクリアですか?
854仕事人 ★:04/02/10 17:27 ID:???
これ見ていれば Samba24 の異常を検知できるです。
855root ★:04/02/10 18:28 ID:???
>>844 >>846
ヘェーヘェーヘェー

>>854
あぁわかりました。あそこをreaddirしてるですか。
例えばDNSでやるには、どうしたらいいかなぁ。

DNSを自分で持ってるuma/pekoサーバじゃないと、ちょいとめんどうかも。