5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

1 :デフォルトの名無しさん:03/08/12 20:50
"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あたり

2 :デフォルトの名無しさん:03/08/12 20:50
過去ログ

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/

3 :デフォルトの名無しさん:03/08/12 22:11
PerlはそろそろOSに組み込んだ方がよいんじゃないでしょうか。
PalmOSの代わりにPerlOSなんてどうでしょう。

4 :デフォルトの名無しさん:03/08/12 22:41
>>3
おまえがやってみろ痴呆が
餓鬼がモウソウタレテンジャネーヨ

5 :デフォルトの名無しさん:03/08/12 23:06
前スレで diff が何とかかんとかという話があったけど
何がおかしいのかわからない俺はおかしい?

6 :デフォルトの名無しさん:03/08/12 23:15
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/

7 :デフォルトの名無しさん:03/08/12 23:15
普通分かるだろ。
おかしいのは あ い つ の 脳 味 噌

8 :デフォルトの名無しさん:03/08/12 23:30
前スレの989です。
書き方が少し分かりにくかったですね。

$hoge="\x9A";

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

標準関数でやることではないですか?
$hoge=~s/\x9A/\\x9A/;

9 :ハッカ飴:03/08/12 23:35
>>5>>7
ネタなのかマジなのかわからん・・・・

10 :デフォルトの名無しさん:03/08/12 23:40
でた

11 :デフォルトの名無しさん:03/08/13 00:59
>>8
$hoge =~ s/(.)/'\\x' . uc unpack 'H2', $1/eg;

12 :デフォルトの名無しさん:03/08/13 02:03
>>8
$hoge='\x9A';


13 :デフォルトの名無しさん:03/08/13 02:47
>>11
うぉ!ありがとうございました!

14 :ハッカ飴:03/08/13 12:14
>>5
じゃあ俺の話は忘れていいから、Algorithm::Diffのドキュメントにある例をLCS()に掛けてみれば良いよ。
ドキュメントと違う結果になるから。

あと>>7、宛て名でも書いとけ。

15 :デフォルトの名無しさん:03/08/13 12:40
perl始めたばかりですが、
Webフォームからユーザー名$userを書き込んで
actionスクリプトにある$userに反映させるにはどうしたらいいんですか?

16 :15:03/08/13 13:25
肝心なこと書き忘れましたが、
cgiユーザーはwwwです。

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

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

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

17 :15:03/08/13 13:32
あ、
板違いですた!

   ∧∧
   /⌒ヽ)<逝ってくる
  i三 ∪
 〜三 |
  (/~∪
  三三
 三三
三三


18 :デフォルトの名無しさん:03/08/13 13:33
板違い。


19 :デフォルトの名無しさん:03/08/13 13:59
鼬がいい

20 :デフォルトの名無しさん:03/08/13 14:05
>>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";
 }
}


21 :20:03/08/13 14:06
で、結果がこんな感じ。

--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桁目がドキュメントと逆になってるけど、別に問題はないと思われ。


22 :ハッカ飴:03/08/13 16:40
> --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だと書いてあるけど、実際はそうじゃないんだ。

23 :ハッカ飴:03/08/13 16:41
問題はLCSにあるようだ。

24 :デフォルトの名無しさん:03/08/13 17:21
質問なのですがcookieによる認証を要求するサイトとかがいろいろとありますが。
こういう場合にIEなどの普通のブラウザなどではそのまま認証を
受ければHTMLファイルを取得することができブラウザ上に表示されるわけですが、
これをPerlで行うにはどうしたらよいのでしょうか?

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

ちなみに環境はWin2K+ActivePerl5.8.0.804で、HTTP::Liteで取得しています。
もしわかる方がおられたらお願いします。

25 :デフォルトの名無しさん:03/08/13 18:23
>>24
$ENV{'HTTP_COOKIE'}

26 :20:03/08/13 18:45
>>22
スマンかった。
LCSの方の配列でdiffやったら、確かにお前さんの言う通りの結果になった。

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

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

綺麗に一続きの部分を取り出したいって気持ちもわからなくはないが。


27 :24:03/08/13 19:38
>>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();

お願いします。

28 :20:03/08/13 19:51
>>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の結果一続きになってくれない理由は相変わらず不明だが、
そうしなければいけないわけでもないし。

とりあえずドキュメントが間違い&例が悪いに一票。

29 :デフォルトの名無しさん:03/08/13 20:16
>>27
http://www.futomi.com/lecture/cookie/specification.html

30 :24:03/08/13 20:47
>>29
これでちょっと調べてみます。
ありがとうございます。

31 :デフォルトの名無しさん:03/08/13 21:03
>>30
LWP::UserAgent
HTTP::Cookies
HTTP::Headers
この辺も調べれ

ここまでくると、WebProgの範疇だな。

32 :31:03/08/13 21:11
老婆心で忠告だが。。。
WebProg板で同じ質問すると、
「散々がいしゅつ」
「過去ログ見れ」
「ググれ!」
って言われるからな。


33 :24:03/08/13 21:44
>>31-32
あろがとうございます。向こうの板の過去ログも調べてみます。

34 :デフォルトの名無しさん:03/08/13 22:04
最近のム板は初心者に優しくなったな。

35 :デフォルトの名無しさん:03/08/13 23:04
Perl実行中に STDIN にデータをつっこんで、
取り出したいんですがそんなことできますでしょうか?

イメージとしてはこんな感じなのですが↓
print STDIN "unko";
print <STDIN>; # unkoを表示

36 :デフォルトの名無しさん:03/08/13 23:11
STDIN に突っ込んだものは、 STDOUTから出てくるのが筋じゃないか。
print STDIN "unko";
print <STDOUT>;

できるか、ぼけ。


37 :デフォルトの名無しさん:03/08/13 23:25
print <STDIN>;
print "abo-n\n";
print <STDIN>;

イメージとしてはこんな感じでないのかな?

38 :デフォルトの名無しさん:03/08/13 23:30
>>35
メデタイな

39 :デフォルトの名無しさん:03/08/13 23:36
↓ a.pl
print <STDIN>;
↑ a.pl

# echo unko | perl a.pl

↓実行結果
unko

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

>>36 できねえのかよ!こんちくしょう!うわーん!
>>37 白いカーソルが点滅してうんともすんとも言わずにとまります。

40 :デフォルトの名無しさん:03/08/13 23:54
自分でつっこんで自分でよんで。
意味あんのか?

41 :デフォルトの名無しさん:03/08/14 00:00
$ tukkomu.pl | nannkasuru.pl
でいいんでないの?


42 :35:03/08/14 00:14
>>40
CGIの軽い動作テストをするためCGI環境エミュレータがほしいのです
require "cgiemu.pl"; するとCGI用の環境変数とか設定されてCGIの環境ができる感じ
QUERY_STRINGなどを得るのにいちいちブラウザからアクセスしないといけないのが面倒なもんで

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

でも、大した用途でもないからあきらめます

43 :35:03/08/14 00:25
うわああぁあぁぁ!あやしい!あやしいけどこんな方法で自己解決
これでPOSTメソッドのテストができるよ。ありがとう!

*STDIN = *DATA;
print <STDIN>;
__END__
data1=aaa&data2=bbb&data3=ccc

44 :デフォルトの名無しさん:03/08/14 17:09
エラー処理はdieよりCarpモジュール使ったほうがいいのですか?

45 :デフォルトの名無しさん:03/08/14 17:13
街行くセーラー服の少女を見て『ムラムラ』っとしたことはありませんか?                
パンティーが見えそうな位に短いスカート、ムチムチした足にルーズソックス。         
私自身も大のセーラーフェチなんです。    
そんな欲望を満たしてくれる動画だけを徹底的に集めました。
無料ムービーを観てください。
http://www.pinkschool.com/             

46 :デフォルトの名無しさん:03/08/14 18:55
PerlでWindowsのスクリーンセーバーを作りたいのですが。

47 :デフォルトの名無しさん:03/08/14 18:56
そうですか。

48 :デフォルトの名無しさん:03/08/14 19:12
HTTP::Parser のサンプル集があるサイトがあれば教えて下さい。

49 :デフォルトの名無しさん:03/08/14 20:02
PerlでWindowsのスクリーンセーバーを作りたいのですが。
どなたか作り方を教えていただけないでしょうか?
絵がぐるぐる動くようなものではなく、あるBBSのデータを
HTTPでGETしてきて、テキスト表示するようなものを
作りたいと思っております。

50 :デフォルトの名無しさん:03/08/14 20:41
そうですか。がんばってください

51 :デフォルトの名無しさん:03/08/14 21:18
PerlからWin32APIを呼べるんならできると思われ。

52 :デフォルトの名無しさん:03/08/14 23:33
>>49
アクティブデスクトップで頑張れ

53 :ハッカ飴:03/08/14 23:48
>>26
俺のほうこそLCS()に掛けるだけですぐ分かるみたいな書き方をして悪かったよ。

54 :ハッカ飴:03/08/14 23:48
>>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

----------
書き換え自由な板に利用しようかと思っていたが、書き込みの差分を求めるにはちょっと使いにくそうだ。

55 :ハッカ飴:03/08/15 00:08
>>39
カーソルが出たままで止まっているのは、キーボードからの入力を待ってるんだよ。
標準入力とは具体的にはキーボードだから。
キーボードから何か打ち込んでCtrl+Zで入力できるよ。

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

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

って>>43で解決してるのか(笑。

56 :デフォルトの名無しさん:03/08/15 10:16
$sth->bind_columns( \( @row{ @{$sth->{NAME_lc} } } ));
while ($sth->fetch) {
  print "$row{region}: $row{sales}\n";
}

Perlの小技でみたのですが、どうしてこれで、
$row{region}
に値が入るのですか。@row{ ... }の部分のしくみがわからないです。。。
どなたか解説してくだされ。。。
(動かすのには成功しているのですが、@row{ ... }の部分をどう解釈するのがわからない。。。。)

57 :デフォルトの名無しさん:03/08/15 10:40
>>56
配列スライスでググるか
Data::Dump::dumpで中身書き出せ

58 :ハッカ飴:03/08/15 11:32
>>56
@row{...}は%rowの一部分だと思う。
ハッシュの一部だけを扱いたいときにそう書くことができるんだ。

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

(確認するにはこれを実行)
print "\$hash{$_}:$_\n" foreach keys %hash;

59 :ハッカ飴:03/08/15 11:38
>>58
確認用のコードが違ってた(笑。
これね。
print "\$hash{$_}:$hash{$_}\n" foreach keys %hash;

60 :山崎 渉:03/08/15 15:13
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン

61 :デフォルトの名無しさん:03/08/15 15:34
質問です、誰かお願いします。
%aa=("hanako","12","tarou","20","ichirou","5");
となっているとします。
キーが名前で値が年齢なんですが、
年齢でソートし表示させる場合、
ichirou 5
hanako 12
tarou 20
とするにはどうすればいいのですか?
どうしてもうまくいかないのです。お願いします。

62 :デフォルトの名無しさん:03/08/15 15:53
>>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/

63 :デフォルトの名無しさん:03/08/15 18:04
>>58

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



64 :デフォルトの名無しさん:03/08/15 19:59
>>61
%aa=(
"hanako" => 12,
"tarou" => 20,
"ichirou" => 5
);


print join "\n" =>
map { "$_ $aa{$_}" }
sort { $aa{$a} <=> $aa{$b} }
keys %aa;

65 :デフォルトの名無しさん:03/08/16 14:30
<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)を使っています。



66 :デフォルトの名無しさん:03/08/16 16:56
>>65
/<td class="iru">(.+)<\/td>/i

67 :デフォルトの名無しさん:03/08/16 17:03
>>65
$/ = undef の後ろに ; が無いのは typo だとして、
ActivePerl Build522 on Win98SE で試したけど、
1MB のファイルでやっても無事終了。

>>66
それ等価じゃないよ。[\w\W] が気持ち悪いなら
m|<td class="iru">(.+?)</td>|is

68 :デフォルトの名無しさん:03/08/16 17:03
>>67
失礼しました

69 :65:03/08/16 17:48
>>67
自分の所だけですか…_| ̄|○
数十KB程度でだめになるなんてどう考えてもおかしいとは
思っていましたが(汗)どうしてだろう。OS再起動してやり直してみます。

70 :65:03/08/16 19:47
相変わらずエラーでますが
jperlをやめてperlでやったらOKでした(汗)

71 :デフォルトの名無しさん:03/08/16 20:07
正規表現で空データにマッチさせるのはどうすればいいんだろ?
$i=~//
だとできんのだが

72 :デフォルトの名無しさん:03/08/16 20:10
/^$/


73 :デフォルトの名無しさん:03/08/16 20:10
length($i)==0


74 :デフォルトの名無しさん:03/08/16 20:21
>>72
キタyo--------
そんな風に書くとはシランカッタ

75 :デフォルトの名無しさん:03/08/16 22:05
空文字列かどうかの判断に正規表現を使うおもしろい人。

76 :デフォルトの名無しさん:03/08/16 22:19
$str eq ""

77 :デフォルトの名無しさん:03/08/17 01:52
/^$/は空文字列にマッチするための正規表現じゃない。

$ perl -e 'print "\n" =~ /^$/, "\n"'
1


78 :デフォルトの名無しさん:03/08/17 02:04
>77
/\A\z/ ならOK?


79 :デフォルトの名無しさん:03/08/17 02:05
system("find $dat/ -type f -atime +$deldatdays -exec rm {} \\;");
XREA鯖でexecが使えないので代わりのコマンドみたいなのないでしょうか?

80 :デフォルトの名無しさん:03/08/17 02:14
>>79
XREAではFile::Find は使えないのか?


81 :デフォルトの名無しさん:03/08/17 02:15
79の質問どっかで見た予感sage
つか、ディレクトリ開いて自前で処理すればいいと思われ。

82 :デフォルトの名無しさん:03/08/17 02:18
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");
}


83 :デフォルトの名無しさん:03/08/17 06:55
>>79
xargsは?


84 :デフォルトの名無しさん:03/08/17 15:11
>>78
OK

85 :デフォルトの名無しさん:03/08/17 20:28
use vars qw/$scalar @array %hash/;とour ( $scalar , @array , %hash );は同じと考えてOKですか?

86 :デフォルトの名無しさん:03/08/17 22:27
$input = <STDIN>;
としてキーボードから入力を得ているのですが、
キーボードからの入力がそのままコンソール上に表示されてしまいます。
これではパスワード等の入力に支障があるので入力した文字を * で表示するようにしたいのですが、
どうしたらよいでしょうか?

87 :デフォルトの名無しさん:03/08/17 22:48
>>86
それを行うには標準入出力を制御する必要あり。もっとも、簡単な方法として
ANSIエスケープシーケンスを使って、「非表示」にする方法があるけど、
これだと、画面のハードコピー取られるとハードコピー上には「非表示」に
したはずの文字データが入ってしまうという罠がある

プラットフォーム書いてないからこれ以上のアドバイスがしようがない…。
windows 系なら Win::Console 使えば、前述の標準入出力の制御ができる。

88 :86:03/08/18 00:38
>>87
プラットフォームによって別のコードになってしまうんですか。
そのまま別のプラットフォームへ持っていったりして使う予定だったので、
プラットフォーム依存になってしまうのは困ります。
何か、Perlでは無理そうなので諦める事にします。
ありがとうございました。

89 :デフォルトの名無しさん:03/08/18 00:48
>>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

90 :デフォルトの名無しさん:03/08/18 01:44
Perlでキーボードやマウスの操作を制御したいのですが
そのようなことは可能でしょうか?


91 :デフォルトの名無しさん:03/08/18 01:46
携帯サイトのようです。

http://www.leap-yuki.com/r/u.htm

92 :デフォルトの名無しさん:03/08/18 01:59
>>90
環境依存

93 :デフォルトの名無しさん:03/08/18 03:02
マウスに駆動系付いてれば操作できるってことですか?
キーボードはピアノの自動演奏みたい動くんですかね?

94 :90:03/08/18 07:17
環境書くの忘れてました。Windowsです。
調べてみたらWin32::Consoleでできるみたいですね。
しかしPerlは何でもできますね。失礼しました。

95 :デフォルトの名無しさん:03/08/18 08:31
>>79 >>80 >>82
ありがとうございます。
が、一日がんばってみましたがうまく削除してくれません


96 :85:03/08/18 15:24
>>89
解りました。どうもありがとうございます。



97 :デフォルトの名無しさん:03/08/18 22:25
>>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 );
}

98 :デフォルトの名無しさん:03/08/18 22:38
>>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 {
    :
    :

99 :86:03/08/18 23:23
関係ないけど>>90=87っぽいな。

100 :90:03/08/19 01:02
なんかWin32::Consoleではキーボードやマウスの制御までは
できないみたいですねぇ・・・

>>99
87は私じゃないですよー

101 :デフォルトの名無しさん:03/08/19 12:38
むしろ>90=>86っぽい

102 :デフォルトの名無しさん:03/08/19 16:59
    ∧ ∧___  ハニャ〜ン♪
   /(*゚ー゚) /\
 /| ̄∪∪ ̄|\/
   | 汎用C  |/
     ̄ ̄ ̄ ̄






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



103 :デフォルトの名無しさん:03/08/19 23:32
>>100
マウスはないっぽいね。
大人しくWin32::API使うとか。
まぁAPIリファとかないときついと思うケド。

104 :デフォルトの名無しさん:03/08/20 16:33
perlの日本語対応について教えていただきたいんですけど

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

perl5.8.0とか、いままでのperlプログラムがそのまま使えるんですか?

105 :sage:03/08/20 17:15
教えて下さい。

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

お願い致します。


106 :デフォルトの名無しさん:03/08/20 17:35
>>105
マルティ

107 :デフォルトの名無しさん:03/08/20 17:35
( ノ∀`)アチャー

108 :デフォルトの名無しさん:03/08/20 17:42
>>107
( ノ∀`)ノチャー

109 :デフォルトの名無しさん:03/08/20 17:47
>>104
http://www.mathematik.uni-ulm.de/help/perl5/doc/perljp.html

110 :デフォルトの名無しさん:03/08/20 20:38
このスレみてて思うのですが、jperlを使う利点って何でしょうか?
Perlだけで事足りると思うのですが、、、

111 :デフォルトの名無しさん:03/08/20 20:42
前は足りなかったから。

112 :デフォルトの名無しさん:03/08/20 20:54
かなりの美少女が登場します。丸顔で笑顔が非常にそそります。
制服からしても現役女子高生なのでしょう.。
ペニスのしゃぶり方も非常にいやらしく、慣れています。
ビラビラは大きめでクリトリスは綺麗に剥けており丸見え。
出し惜しみのない本当に良い作品です。
フィニッシュは口内発射でまったく羨ましい限り。
無料画像を観てちょ。
http://members.j-girlmovie.com/main.html


113 :90:03/08/20 22:59
>>103
そうですかー。ちょっとWin32::API勉強してみます。


114 :104:03/08/21 14:14
>>109
ありがとう
ほしかった情報そのものです。

32 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)