トップページ⇒tech
114コメント40KB

Perlについての質問箱 6箱目

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
"The duct tape of the Internet"こと、
Perlについての質問箱です
"There's more than one way to do it"ということで
Perlの奥深さについて皆で語り合い、追求してまいりましょう。

CGIについての質問は板違いです。WEBプログラミング板でどうぞ。
CGIとPerlの区別がつかない人もWEBプログラミング板に行ってください。
(WEBプログラミング板 http://pc2.2ch.net/php/ )

CGIの質問は答えがPerlと全然関係ない話に帰着する場合が多かったりするので
WEBプログラミング板に行って聞いたほうが得ですよ。
このスレでは(CGI以外の)純粋にPerlのみに関係する質問を取り扱っていこうと思います。

過去ログは>>2-5あたり
0002デフォルトの名無しさんNGNG
過去ログ

Perlについての質問箱 2箱目
http://pc3.2ch.net/tech/kako/1033/10336/1033688230.html
Perlについての質問箱 3箱目
http://pc2.2ch.net/tech/kako/1041/10412/1041205885.html
Perlについての質問箱 4箱目
http://pc2.2ch.net/test/read.cgi/tech/1048519394/l50
Perlについての質問箱 5箱目
http://pc2.2ch.net/test/read.cgi/tech/1053053082/
0003デフォルトの名無しさんNGNG
PerlはそろそろOSに組み込んだ方がよいんじゃないでしょうか。
PalmOSの代わりにPerlOSなんてどうでしょう。
0004デフォルトの名無しさんNGNG
>>3
おまえがやってみろ痴呆が
餓鬼がモウソウタレテンジャネーヨ
0005デフォルトの名無しさんNGNG
前スレで diff が何とかかんとかという話があったけど
何がおかしいのかわからない俺はおかしい?
0006デフォルトの名無しさんNGNG
WARRRRRRRRRRRRRRRRRRRRRRNIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIHHHHHHHHHHHHNG
コノスレハいたち外です
移動をよろしくお願いします
PHP板は半分はPErlのスレで埋め尽くされています
とくにCGIは「こちらできいてください
削除依頼出してくだっさい

Perl コーディング初心者質問コーナー Part26
http://pc2.2ch.net/test/read.cgi/php/1059043704/
Perl コーディング初心者質問コーナー Part26
http://pc2.2ch.net/test/read.cgi/php/1059043704/
Perl コーディング初心者質問コーナー Part26
http://pc2.2ch.net/test/read.cgi/php/1059043704/
Perl コーディング初心者質問コーナー Part26
http://pc2.2ch.net/test/read.cgi/php/1059043704/
Perl コーディング初心者質問コーナー Part26
http://pc2.2ch.net/test/read.cgi/php/1059043704/
0007デフォルトの名無しさんNGNG
普通分かるだろ。
おかしいのは あ い つ の 脳 味 噌
0008デフォルトの名無しさんNGNG
前スレの989です。
書き方が少し分かりにくかったですね。

$hoge="\x9A";

となっているときに
$hogeの中身を「\x9A」という文字列に変更したいのです。
つまり表示したときに「\x9A」となっていればいいです。

標準関数でやることではないですか?
$hoge=~s/\x9A/\\x9A/;
0009ハッカ飴NGNG
>>5>>7
ネタなのかマジなのかわからん・・・・
0010デフォルトの名無しさんNGNG
でた
0011デフォルトの名無しさんNGNG
>>8
$hoge =~ s/(.)/'\\x' . uc unpack 'H2', $1/eg;
0012デフォルトの名無しさんNGNG
>>8
$hoge='\x9A';
0013デフォルトの名無しさんNGNG
>>11
うぉ!ありがとうございました!
0014ハッカ飴NGNG
>>5
じゃあ俺の話は忘れていいから、Algorithm::Diffのドキュメントにある例をLCS()に掛けてみれば良いよ。
ドキュメントと違う結果になるから。

あと>>7、宛て名でも書いとけ。
0015デフォルトの名無しさんNGNG
perl始めたばかりですが、
Webフォームからユーザー名$userを書き込んで
actionスクリプトにある$userに反映させるにはどうしたらいいんですか?
001615NGNG
肝心なこと書き忘れましたが、
cgiユーザーはwwwです。

で、ユーザー側でquotaを調べたいのですが、
このままでは、ユーザーがwwwなので出来ません。

apacheがSuEXECだといいのでしょうが、、、、
他のやりかたで、cgiをroot権限で動かすこtなんか出来ますか?

それで駄目なら、ユーザー名を書き込むことによって
root権限のシェルスクリプトが起動するようにとか出来ますか?
001715NGNG
あ、
板違いですた!

   ∧∧
   /⌒ヽ)<逝ってくる
  i三 ∪
 〜三 |
  (/~∪
  三三
 三三
三三
0018デフォルトの名無しさんNGNG
板違い。
0019デフォルトの名無しさんNGNG
鼬がいい
0020デフォルトの名無しさんNGNG
>>14
Algorithm-Diff-1.15.tar.gz落としてきてやってみた。

use Algorithm::Diff;
use strict;

print "--LCS----------------------\n";

my @seq1 = qw(a x b y c z p d q);
my @seq2 = qw(a b c a x b y c z);
print "@seq1\n@seq2\n\n";

my @result = Algorithm::Diff::LCS(\@seq1, \@seq2);
print "@result\n";

print "\n--diff---------------------\n";

@seq1 = qw(a b c e h j l m n p);
@seq2 = qw(b c d e f j k l m r s t);
print "@seq1\n@seq2\n\n";

@result = Algorithm::Diff::diff(\@seq1, \@seq2);
foreach my $hunk (@result) {
 print "-" x 10 . "\n";
 foreach (@$hunk) {
  print join(", ", @$_) . "\n";
 }
}
002120NGNG
で、結果がこんな感じ。

--LCS----------------------
a x b y c z p d q
a b c a x b y c z

a x b y c z

--diff---------------------
a b c e h j l m n p
b c d e f j k l m r s t

----------
-, 0, a
----------
+, 2, d
----------
-, 4, h
+, 4, f
----------
+, 6, k
----------
-, 8, n
+, 9, r
-, 9, p
+, 10, s
+, 11, t

diffの9桁目がドキュメントと逆になってるけど、別に問題はないと思われ。
0022ハッカ飴NGNG
> --LCS----------------------
> a x b y c z p d q
> a b c a x b y c z
>
> a x b y c z

これじゃあ分からないよ。
問題は
> a x b y c z
の a がどっちの a かということ。

ドキュメントには2つめのaだと書いてあるけど、実際はそうじゃないんだ。
0023ハッカ飴NGNG
問題はLCSにあるようだ。
0024デフォルトの名無しさんNGNG
質問なのですがcookieによる認証を要求するサイトとかがいろいろとありますが。
こういう場合にIEなどの普通のブラウザなどではそのまま認証を
受ければHTMLファイルを取得することができブラウザ上に表示されるわけですが、
これをPerlで行うにはどうしたらよいのでしょうか?

わたしが考えたのはIEのcookieをPerlでも使えるようになんか設定をいじればいいのでは
ないかと思ったのですが方法がわかりませんし、もっといい方法があるのかもしれませんが
私にはわかりません。

ちなみに環境はWin2K+ActivePerl5.8.0.804で、HTTP::Liteで取得しています。
もしわかる方がおられたらお願いします。
0025デフォルトの名無しさんNGNG
>>24
$ENV{'HTTP_COOKIE'}
002620NGNG
>>22
スマンかった。
LCSの方の配列でdiffやったら、確かにお前さんの言う通りの結果になった。

他にも似たようなパターン作ってやってみると、
必ず先頭を一致させて途中に埋め込んだような結果になるな。

確かにドキュメントとは違うが、一般的にはこういう結果だと思う。
俺はこの分野に詳しいわけじゃないから理由はわからないが、
なるべく前の方に一致する点を置くようにしてるんじゃないかな。

綺麗に一続きの部分を取り出したいって気持ちもわからなくはないが。
002724NGNG
>>25
それをいれて実行してみたのですがその変数には空文字しか入ってませんでした。

私が機能として欲しいのは
あるURLに対して$http->requestを発行したときに相手側にcookieが送られるか何かして
認証を受けて$http->bodyでHTML本体が取得できるようにしたいのですが
$ENV{'HTTP_COOKIE'}に何か入れなければならないのでしょうか?

あと書き忘れましたがソースです
$http->reset();
$http->add_req_header("","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.0.3705)");
$ret = $http->request(対象URL);
if($ret ne "200"){
### エラー時の処理
}
$list_body = $http->body();

お願いします。
002820NGNG
>>26
なんか勘違いしてた。
LCSって連続した共通部分が最も長いパターンを導出するのかと思ってたんだけど違うんだな。

ttp://lecture.ecc.u-tokyo.ac.jp/~yamaguch/pub/cp2-9/LCS.html

a b x b y c z p d q  ←2番目にbを追加してみた
a b c a x b y c z
で返ってくるのが
x b y c zじゃdiffとして役に立たないし。

というわけで、Algorithm::Diff::LCSはおかしくない。

diffの結果一続きになってくれない理由は相変わらず不明だが、
そうしなければいけないわけでもないし。

とりあえずドキュメントが間違い&例が悪いに一票。
0029デフォルトの名無しさんNGNG
>>27
http://www.futomi.com/lecture/cookie/specification.html
003024NGNG
>>29
これでちょっと調べてみます。
ありがとうございます。
0031デフォルトの名無しさんNGNG
>>30
LWP::UserAgent
HTTP::Cookies
HTTP::Headers
この辺も調べれ

ここまでくると、WebProgの範疇だな。
003231NGNG
老婆心で忠告だが。。。
WebProg板で同じ質問すると、
「散々がいしゅつ」
「過去ログ見れ」
「ググれ!」
って言われるからな。
003324NGNG
>>31-32
あろがとうございます。向こうの板の過去ログも調べてみます。
0034デフォルトの名無しさんNGNG
最近のム板は初心者に優しくなったな。
0035デフォルトの名無しさんNGNG
Perl実行中に STDIN にデータをつっこんで、
取り出したいんですがそんなことできますでしょうか?

イメージとしてはこんな感じなのですが↓
print STDIN "unko";
print <STDIN>; # unkoを表示
0036デフォルトの名無しさんNGNG
STDIN に突っ込んだものは、 STDOUTから出てくるのが筋じゃないか。
print STDIN "unko";
print <STDOUT>;

できるか、ぼけ。
0037デフォルトの名無しさんNGNG
print <STDIN>;
print "abo-n\n";
print <STDIN>;

イメージとしてはこんな感じでないのかな?
0038デフォルトの名無しさんNGNG
>>35
メデタイな
0039デフォルトの名無しさんNGNG
↓ a.pl
print <STDIN>;
↑ a.pl

# echo unko | perl a.pl

↓実行結果
unko

実行可能な例としてこんな感じなんですが、
このパイプで標準入力にデータをつっこむ作業をperlのなかでやりたいのです。

>>36 できねえのかよ!こんちくしょう!うわーん!
>>37 白いカーソルが点滅してうんともすんとも言わずにとまります。
0040デフォルトの名無しさんNGNG
自分でつっこんで自分でよんで。
意味あんのか?
0041デフォルトの名無しさんNGNG
$ tukkomu.pl | nannkasuru.pl
でいいんでないの?
004235NGNG
>>40
CGIの軽い動作テストをするためCGI環境エミュレータがほしいのです
require "cgiemu.pl"; するとCGI用の環境変数とか設定されてCGIの環境ができる感じ
QUERY_STRINGなどを得るのにいちいちブラウザからアクセスしないといけないのが面倒なもんで

$ENVとかのデータは適当にデータを定義すれば用意出来るけど、
POST(標準入力)のデータは用意できないので困ってたんですよ
標準出力のためにコマンドラインからいちいちパイプするのは面倒だし
requireだけで済ませたいし。

でも、大した用途でもないからあきらめます
004335NGNG
うわああぁあぁぁ!あやしい!あやしいけどこんな方法で自己解決
これでPOSTメソッドのテストができるよ。ありがとう!

*STDIN = *DATA;
print <STDIN>;
__END__
data1=aaa&data2=bbb&data3=ccc
0044デフォルトの名無しさんNGNG
エラー処理はdieよりCarpモジュール使ったほうがいいのですか?
0045デフォルトの名無しさんNGNG
街行くセーラー服の少女を見て『ムラムラ』っとしたことはありませんか?                
パンティーが見えそうな位に短いスカート、ムチムチした足にルーズソックス。         
私自身も大のセーラーフェチなんです。    
そんな欲望を満たしてくれる動画だけを徹底的に集めました。
無料ムービーを観てください。
http://www.pinkschool.com/             
0046デフォルトの名無しさんNGNG
PerlでWindowsのスクリーンセーバーを作りたいのですが。
0047デフォルトの名無しさんNGNG
そうですか。
0048デフォルトの名無しさんNGNG
HTTP::Parser のサンプル集があるサイトがあれば教えて下さい。
0049デフォルトの名無しさんNGNG
PerlでWindowsのスクリーンセーバーを作りたいのですが。
どなたか作り方を教えていただけないでしょうか?
絵がぐるぐる動くようなものではなく、あるBBSのデータを
HTTPでGETしてきて、テキスト表示するようなものを
作りたいと思っております。
0050デフォルトの名無しさんNGNG
そうですか。がんばってください
0051デフォルトの名無しさんNGNG
PerlからWin32APIを呼べるんならできると思われ。
0052デフォルトの名無しさんNGNG
>>49
アクティブデスクトップで頑張れ
0053ハッカ飴NGNG
>>26
俺のほうこそLCS()に掛けるだけですぐ分かるみたいな書き方をして悪かったよ。
0054ハッカ飴NGNG
>>28

そうか、LCSのLが「最長」だから、てっきり連続しているものと思ってたが、細切れでもいいんだな。

例が悪いといえば、ドキュメントのこの部分は例を間違えているな。

| a.x.b.y.c.z.p.d.q
| a.b.c.a.x.b.y.c.z
|
| A naive approach might start by matching up the C<a> and C<b> that
| appear at the beginning of each sequence, like this:
|
| a.x.b.y.c.........z.p.d.q
| a...b...c.a.b.y.c.z

単純な方法でやると結果がどうなるかという例だけど、下の例(処理結果)で x が抜けている。
もし x があれば、この方法でもちゃんとLCSが見つかりそうだ(笑。

a...........x.b.y.c.z.p.d.q
a...b...c.a.x.b.y.c.z

----------
書き換え自由な板に利用しようかと思っていたが、書き込みの差分を求めるにはちょっと使いにくそうだ。
0055ハッカ飴NGNG
>>39
カーソルが出たままで止まっているのは、キーボードからの入力を待ってるんだよ。
標準入力とは具体的にはキーボードだから。
キーボードから何か打ち込んでCtrl+Zで入力できるよ。

----------
標準入力を実行中に変える方法は思いつかないけど、それ以前、つまり実行するときに
perl a.pl <post.txt
とすればテキストファイルの中身を標準入力として扱える。

もう1つ、やっぱり標準入力を実行中に変えるわけじゃないけど、PerlスクリプトからPerlスクリプトを実行してもできるんじゃないかな?
つまり、echo unko|perl a.pl をPerlスクリプトの中で実行するということ。
使ったことが無いんで、すぐにサンプルは思いつかないけど、Perlではパイプを使って好きなコマンドを実行できるらしい。

って>>43で解決してるのか(笑。
0056デフォルトの名無しさんNGNG
$sth->bind_columns( \( @row{ @{$sth->{NAME_lc} } } ));
while ($sth->fetch) {
  print "$row{region}: $row{sales}\n";
}

Perlの小技でみたのですが、どうしてこれで、
$row{region}
に値が入るのですか。@row{ ... }の部分のしくみがわからないです。。。
どなたか解説してくだされ。。。
(動かすのには成功しているのですが、@row{ ... }の部分をどう解釈するのがわからない。。。。)
0057デフォルトの名無しさんNGNG
>>56
配列スライスでググるか
Data::Dump::dumpで中身書き出せ
0058ハッカ飴NGNG
>>56
@row{...}は%rowの一部分だと思う。
ハッシュの一部だけを扱いたいときにそう書くことができるんだ。

さらに、これは左辺値としても使える。
例えば、一度に複数の値をハッシュに入れたいときはこうできる。
@hash{a,b,c} = qw(A B C);

(確認するにはこれを実行)
print "\$hash{$_}:$_\n" foreach keys %hash;
0059ハッカ飴NGNG
>>58
確認用のコードが違ってた(笑。
これね。
print "\$hash{$_}:$hash{$_}\n" foreach keys %hash;
0060山崎 渉NGNG
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン
0061デフォルトの名無しさんNGNG
質問です、誰かお願いします。
%aa=("hanako","12","tarou","20","ichirou","5");
となっているとします。
キーが名前で値が年齢なんですが、
年齢でソートし表示させる場合、
ichirou 5
hanako 12
tarou 20
とするにはどうすればいいのですか?
どうしてもうまくいかないのです。お願いします。
0062デフォルトの名無しさんNGNG
>>61
perldoc perlfunc
でsortを検索してください
そしたら↓みたいなのがのってます

#!/usr/bin/perl
%aa=("hanako","12","tarou","20","ichirou","5");
my @ageAV = sort { $age{$a}<=> $age{$b}} keys %aa;
foreach $i (reverse @ageAV){
print "$i $aa{$i}\n";
}

このスレには馬鹿しかこないから今度から
↓出来で聞いてね
Perl コーディング初心者質問コーナー Part27
http://pc2.2ch.net/test/read.cgi/php/1060808783/
0063デフォルトの名無しさんNGNG
>>58

なるほど。書いていただいたサンプルと、自分であれこれ試してみたらなんとなく
理解できたような気はします。ありがとうございました。

0064デフォルトの名無しさんNGNG
>>61
%aa=(
"hanako" => 12,
"tarou" => 20,
"ichirou" => 5
);


print join "\n" =>
map { "$_ $aa{$_}" }
sort { $aa{$a} <=> $aa{$b} }
keys %aa;
0065デフォルトの名無しさんNGNG
<table><tr><td class="iran">いらない部分</td><td class="iru">いる部分</td></tr></table>
↑こんな構造の30KBほどのHTML(複数行)から20KBほどの文章を切り出すのに
$/ = undef
open(HTML, "tmp.html");
$_ = <HTML>;
close(HTML);
if(/<td class="iru">([\w\W]+?)<\/td>/im){ print $1; }
とやると
Error:Runtime Exception
と出てしまいます。小さいファイルだとエラーにならないのですが、
これは正規表現で大きな文字列をマッチさせてはいけないということなんでしょうか。
大きなファイルの特定の部分から特定の部分まで読み込む方法があればそれでいいんですが
自分の頭ではこんな方法しか思いつきませんでした。

Active Perl 5.005_03 (jperl)を使っています。

0066デフォルトの名無しさんNGNG
>>65
/<td class="iru">(.+)<\/td>/i
0067デフォルトの名無しさんNGNG
>>65
$/ = undef の後ろに ; が無いのは typo だとして、
ActivePerl Build522 on Win98SE で試したけど、
1MB のファイルでやっても無事終了。

>>66
それ等価じゃないよ。[\w\W] が気持ち悪いなら
m|<td class="iru">(.+?)</td>|is
0068デフォルトの名無しさんNGNG
>>67
失礼しました
006965NGNG
>>67
自分の所だけですか…_| ̄|○
数十KB程度でだめになるなんてどう考えてもおかしいとは
思っていましたが(汗)どうしてだろう。OS再起動してやり直してみます。
007065NGNG
相変わらずエラーでますが
jperlをやめてperlでやったらOKでした(汗)
0071デフォルトの名無しさんNGNG
正規表現で空データにマッチさせるのはどうすればいいんだろ?
$i=~//
だとできんのだが
0072デフォルトの名無しさんNGNG
/^$/
0073デフォルトの名無しさんNGNG
length($i)==0
0074デフォルトの名無しさんNGNG
>>72
キタyo--------
そんな風に書くとはシランカッタ
0075デフォルトの名無しさんNGNG
空文字列かどうかの判断に正規表現を使うおもしろい人。
0076デフォルトの名無しさんNGNG
$str eq ""
0077デフォルトの名無しさんNGNG
/^$/は空文字列にマッチするための正規表現じゃない。

$ perl -e 'print "\n" =~ /^$/, "\n"'
1
0078デフォルトの名無しさんNGNG
>77
/\A\z/ ならOK?
0079デフォルトの名無しさんNGNG
system("find $dat/ -type f -atime +$deldatdays -exec rm {} \\;");
XREA鯖でexecが使えないので代わりのコマンドみたいなのないでしょうか?
0080デフォルトの名無しさんNGNG
>>79
XREAではFile::Find は使えないのか?
0081デフォルトの名無しさんNGNG
79の質問どっかで見た予感sage
つか、ディレクトリ開いて自前で処理すればいいと思われ。
0082デフォルトの名無しさんNGNG
denver% find2perl '$dat/' -type f -atime +'$deldatdays' -exec rm {} \; [~]
#!/usr/bin/perl
eval 'exec /usr/bin/perl -S $0 ${1+"$@"}'
if $running_under_some_shell;

require "find.pl";

# Traverse desired filesystems


&find('$dat/');

exit;
sub wanted {
(($dev,$ino,$mode,$nlink,$uid,$gid) = lstat($_)) &&
-f _ &&
(int(-A _) > $deldatdays) &&
(unlink($_) || warn "$name: $!\n");
}
0083デフォルトの名無しさんNGNG
>>79
xargsは?
0084デフォルトの名無しさんNGNG
>>78
OK
0085デフォルトの名無しさんNGNG
use vars qw/$scalar @array %hash/;とour ( $scalar , @array , %hash );は同じと考えてOKですか?
0086デフォルトの名無しさんNGNG
$input = <STDIN>;
としてキーボードから入力を得ているのですが、
キーボードからの入力がそのままコンソール上に表示されてしまいます。
これではパスワード等の入力に支障があるので入力した文字を * で表示するようにしたいのですが、
どうしたらよいでしょうか?
0087デフォルトの名無しさんNGNG
>>86
それを行うには標準入出力を制御する必要あり。もっとも、簡単な方法として
ANSIエスケープシーケンスを使って、「非表示」にする方法があるけど、
これだと、画面のハードコピー取られるとハードコピー上には「非表示」に
したはずの文字データが入ってしまうという罠がある

プラットフォーム書いてないからこれ以上のアドバイスがしようがない…。
windows 系なら Win::Console 使えば、前述の標準入出力の制御ができる。
008886NGNG
>>87
プラットフォームによって別のコードになってしまうんですか。
そのまま別のプラットフォームへ持っていったりして使う予定だったので、
プラットフォーム依存になってしまうのは困ります。
何か、Perlでは無理そうなので諦める事にします。
ありがとうございました。
0089デフォルトの名無しさんNGNG
>>85
ourの方は変数そのものはグローバルだけど、可視性はブロックスコープになる。

#!perl
use strict 'vars';
$our = 1; # compile error
$vars = 1; # compile error
{
our $our;
use vars qw($vars);
$our = 1; # ok
$vars = 1; # ok
}
$our = 1; # compile error
$vars = 1; # ok
0090デフォルトの名無しさんNGNG
Perlでキーボードやマウスの操作を制御したいのですが
そのようなことは可能でしょうか?
0091デフォルトの名無しさんNGNG
携帯サイトのようです。

http://www.leap-yuki.com/r/u.htm
0092デフォルトの名無しさんNGNG
>>90
環境依存
0093デフォルトの名無しさんNGNG
マウスに駆動系付いてれば操作できるってことですか?
キーボードはピアノの自動演奏みたい動くんですかね?
009490NGNG
環境書くの忘れてました。Windowsです。
調べてみたらWin32::Consoleでできるみたいですね。
しかしPerlは何でもできますね。失礼しました。
0095デフォルトの名無しさんNGNG
>>79 >>80 >>82
ありがとうございます。
が、一日がんばってみましたがうまく削除してくれません
009685NGNG
>>89
解りました。どうもありがとうございます。

0097デフォルトの名無しさんNGNG
>>95
指定したフォルダ内を全削除するperlコードなら前作ったの(↓)がある。
あとはこれに削除条件でもつけれ。
sub rm{} の中の名前無し関数 sub{} の中身だけ直せばできるはず。

rm("./削除するフォルダ"); # 使用例

sub rm{
  dirwalk( $_[0], sub{ (-d $_)?rmdir $_:unlink $_;} );
}

sub dirwalk {
  my $path = $_[0];
  my $func = $_[1];
  my $file;
  opendir( DIRWALK, $path ) or ( warn "Can't open $path.\n" and return 0 );
  readdir( DIRWALK ); # . を破棄
  readdir( DIRWALK ); # ..を破棄
  foreach $file ( readdir( DIRWALK ) ){
    &dirwalk( "$path/$file", $func ) if( -d "$path/$file" );
    &$func($_="$path/$file");
  }
  closedir( DIRWALK );
}
0098デフォルトの名無しさんNGNG
>>82 こんなところに削除条件のコードがあったなんて。
多分、↓こんな感じかな?
File::Find があれば dirwalkなんて関数はいらないので置き換えてくれ

&sakujo( "/どこか", 5 );

sub sakujo{
  $deldatdays = $_[1];
  dirwalk( $_[0], sub{
      (($dev,$ino,$mode,$nlink,$uid,$gid) = lstat($_)) &&
      -f $_ &&
      (int(-A $_) > $deldatdays) &&
      (unlink($_) || warn "$name: $!\n");
    }
  );
}
sub dirwalk {
    :
    :
009986NGNG
関係ないけど>>90=87っぽいな。
010090NGNG
なんかWin32::Consoleではキーボードやマウスの制御までは
できないみたいですねぇ・・・

>>99
87は私じゃないですよー
0101デフォルトの名無しさんNGNG
むしろ>90=>86っぽい
0102デフォルトの名無しさんNGNG
    ∧ ∧___  ハニャ〜ン♪
   /(*゚ー゚) /\
 /| ̄∪∪ ̄|\/
   | 汎用C  |/
     ̄ ̄ ̄ ̄






                       __∧ ∧  アヒャー オレモツカエヨナ!!
                      /\  (*゚∀゚)\
                      \/| ̄∪∪ ̄|\
                        \| 字通Perl| ;;;;;;;,,,,
                             ̄ ̄ ̄ ̄,,;;;;;;;;
                           ;;;;;;;;;;;;;;;;;'''

0103デフォルトの名無しさんNGNG
>>100
マウスはないっぽいね。
大人しくWin32::API使うとか。
まぁAPIリファとかないときついと思うケド。
0104デフォルトの名無しさんNGNG
perlの日本語対応について教えていただきたいんですけど

perl5.005_03へパッチ適用してjperlで使ってたんですが
それ以降の日本語対応ってどのようになってるんでしょうか?

perl5.8.0とか、いままでのperlプログラムがそのまま使えるんですか?
0105sageNGNG
教えて下さい。

M君のサーバーにアクセスしてきた人の中で、
K君のファイルにアクセスした人を、
アクセスログ解析して
グラフなり表なりになるものをperlで作るやりかたを教えて下さい。

お願い致します。
0106デフォルトの名無しさんNGNG
>>105
マルティ
0107デフォルトの名無しさんNGNG
( ノ∀`)アチャー
0108デフォルトの名無しさんNGNG
>>107
( ノ∀`)ノチャー
0109デフォルトの名無しさんNGNG
>>104
http://www.mathematik.uni-ulm.de/help/perl5/doc/perljp.html
0110デフォルトの名無しさんNGNG
このスレみてて思うのですが、jperlを使う利点って何でしょうか?
Perlだけで事足りると思うのですが、、、
0111デフォルトの名無しさんNGNG
前は足りなかったから。
0112デフォルトの名無しさんNGNG
かなりの美少女が登場します。丸顔で笑顔が非常にそそります。
制服からしても現役女子高生なのでしょう.。
ペニスのしゃぶり方も非常にいやらしく、慣れています。
ビラビラは大きめでクリトリスは綺麗に剥けており丸見え。
出し惜しみのない本当に良い作品です。
フィニッシュは口内発射でまったく羨ましい限り。
無料画像を観てちょ。
http://members.j-girlmovie.com/main.html
011390NGNG
>>103
そうですかー。ちょっとWin32::API勉強してみます。
0114104NGNG
>>109
ありがとう
ほしかった情報そのものです。
■ このスレッドは過去ログ倉庫に格納されています