CGIに依存しないPerlの話題一般
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
2001/05/31(木) 21:49ID:bKRSBFew・モジュール、オブジェクト指向プログラミング
・Perl6や.NET対応など
・各種GUIツールキット(Perl/Tk, Gtk-Perlなど)
・他言語による拡張(Inline::*, XS, Swigなど)
についてマターリと語り合うスレッドです。
#CGI関連の話題は、なるべく専用スレッドで。
0730nobodyさん
02/04/21 13:49ID:???http://camelbones.sourceforge.net/index.html
0731nobodyさん
02/04/21 18:51ID:kERwwP8q0733_gunzip
02/04/21 20:04ID:???配色を変えてみたり($toplevel->setPalette())、ボーダーの値を変更してみたりってのは?
その際、いちいちコードの中にオプションの値を埋め込むのではなく、.Xdefaults
形式のファイルに纏めておいて、$toplevel->optionReadfile(filename, priority)
で読み込むと楽ちん。
0734nobodyさん
02/04/22 07:01ID:LmMZGpbzウインドウの左上に表示されるTkのアイコン(?)がダサいよね。
あれ他のアイコンに変えられないかな?
-------------
|TK
-------------
|
|
|
|
0735_gunzip
02/04/22 21:19ID:???my $image = $mw->Pixmap(-file => "title.xpm");
$mw->Icon(-image => $image);
# ないし、$mw->iconimage($image);
0736_gunzip
02/04/22 21:21ID:???でもよろし
0737nobodyさん
02/04/22 21:28ID:???0739nobodyさん
02/04/23 01:14ID:???0740nobodyさん
02/04/23 04:50ID:???0744nobodyさん
02/04/23 19:37ID:???0745nobodyさん
02/04/23 23:55ID:???http://pc.2ch.net/test/read.cgi/php/990178547/67
0747nobodyさん
02/04/24 07:44ID:ZzM1BfC2素人考えでは、アパッチにモジュールとして組み込んで使うと理解している
のですが、なんだかPHPはメジャーでmod_perlはマイナーな気がします。
何か決定的な違いみたいなのがあるのでしょうか?
0749nobodyさん
02/04/24 08:37ID:???だから
1) 一旦コンパイルしてメモリ上にロードされたモジュール類はApacheの子プロセスがexitするまでそのままメモリに残ってる
2) ApacheのAPIをPerlから使える
3) Apacheのフレームワーク内の随所にPerlで書いたハンドラーを組み込める
自分はPHP使いじゃないので知らないがPHPにも同様のものがあるのかも
しれん。でももし言語としてのPHPの話をしているのならそもそも比較自体がナンセンス。
0750nobodyさん
02/04/24 12:13ID:???0751nobodyさん
02/04/24 23:07ID:z19r++98作りたいのだが、サンプルないですか??
0755あぼーん
NGNG0756nobodyさん
02/04/25 13:27ID:vqNaBvlX「./Configure」の後の「make」でエラーになってしまいます。
エラーは最後の行にこんな感じで表示されてました。
make: *** [miniperl] エラー1
Linaxにさわって間もないので、よくわからないのですが、
何かしなければいけないのでしょうか?
0757nobodyさん
02/04/25 13:58ID:???まぁ、rpmにしたところで、apt-getにはかなわんな。
0758nobodyさん
02/04/25 19:17ID:???0759nobodyさん
02/04/26 03:29ID:???それだけじゃわからんので答えられないが、perl5.6.0はよしとけ。
コンパイルするんだったらちゃんとwww.perl.comから
perl5.6.1(stable.tar.gz)をひろってきなさいな。
0760756
02/04/26 07:26ID:xOSV8XDg一応、www.perl.comから落としたstable.tar.gzなんですよ。
しょうがないので、perl5.005_03.tar.gzにしたら大丈夫でした。
0761759
02/04/26 07:37ID:???ということはそれはperl5.6.1のはずだけど・・・ただの間違い?
できれば5.6.1のほうがいいよ。大分違うから。
次からはどこでこけたのかしっかり書き出すべし。
0762nobodyさん
02/04/28 03:22ID:W+plYXX70763nobodyさん
02/04/28 03:26ID:???0767ぺるにゃん
02/04/28 19:48ID:gfGqCBjT>foreachの計算量とか。
何のことですかにゃ???
そういえば、はるか昔、Perl 5.005 くらいか、
foreach (1..1000000)
とやったときに、巨大な配列を作らないようにしました。
という仕様変更を見ましたが、これってどういう仕組みなのかどなたかご存知ですか?
( ) の中を変数展開することなしに、foreach ループを実行するってことなのかなぁ。
そんなことができるんだったら、foreach (@big_array) も効率は悪くない。
そうではなくて、
「foreach ( 数字..数字 ) はよく使われる書法だから、この場合のみ最適化した」
というのであれば、foreach (@big_array) の効率が上がったわけではないのにゃ…。
0768nobodyさん
02/04/28 20:54ID:???昔はforeach(1..1000000)は内部的に
@array=(1..1000000);
foreach (@array)
って風に一回配列を作ってからforeachにかけてたんじゃないかな。
だからまず@arrayを作るのに時間がかかって、@arrayを評価するのにも時間がかかって…みたいな。
ちなみに
use Benchmark;
@array = 1..100000;
timethese(1000,{
'array'=> q{ foreach (@array) { $_ } },
'0..10'=> q{ foreach (1..100000) { $_ } },
});
Benchmark: timing 1000 iterations of 0..10,array...
0..10: 131 wallclock secs (131.49 usr + 0.00 sys = 131.49 CPU) @ 7.61/s (n=1000)
array: 152 wallclock secs (152.09 usr + 0.00 sys = 152.09 CPU) @ 6.58/s (n=1000)
うちだとこんな結果が出た。Win98 perl5.6.1 CPU466MHz
0769_gunzip@訂正歓迎
02/04/28 22:06ID:???>>767
>「foreach ( 数字..数字 ) はよく使われる書法だから、この場合のみ最適化した」
ちょっと追加しますが、'a' .. 'z' なども最適化の対象です。
>>768
>って風に一回配列を作ってからforeachにかけてたんじゃないかな。
>だからまず@arrayを作るのに時間がかかって、@arrayを評価するのにも時間がかかって…みたいな。
付け加えるなら、@array分メモリも食います。
>>768さんのベンチマークで前者の方が早いのは、for (1..100)型は
内部でループカウンタを再利用する最適化を行っているので、
毎回カウンタSVの生成破棄にかかる時間を節約することができるからでしょう。
(とはいえ、わずかな時間ですから気にする必要は全くありません)
0770768
02/04/28 22:51ID:???面白いなぁ。
0771nobodyさん
02/04/28 23:43ID:???0772nobodyさん
02/04/29 08:55ID:???0773nobodyさん
02/04/29 09:08ID:???0774nobodyさん
02/04/29 09:27ID:???`kill -KILL _gunzipのPID` if $user eq '_gunzip';
0775nobodyさん
02/04/29 13:27ID:5LS+M/nghaxa?
0776nobodyさん
02/04/29 14:09ID:???0777nobodyさん
02/04/29 14:12ID:NmdFgil6お前が消えるまでこのスレッドを荒らす
0779あぼーん
NGNG0780nobodyさん
02/04/29 14:43ID:???perl/tkで「何か」を作ることは出来る?
0781nobodyさん
02/04/29 16:10ID:D6ncuE9Tブラウザで言うところのTextAreaに長文の文章入れると文字化けしません?
文章コピーしてTextAreaに貼り付けた瞬間に文字化けします。
Linux+Perl5.005_03+Perl/Tk800.23+日本語パッチ、なんですけど。
↓ソースはこんな感じ。
$ta2=$mw->Scrolled(
"Text",
-scrollbars => 'se',
-height => 5,
-width => 35,
-wrap => 'none',
)->pack();
0782nobodyさん
02/04/29 17:08ID:???昔一瞬作ろうと思ったけどすぐ止めた。
変な形のWindowの作り方がわからなかったから。
まぁ、四角い箱の中で動くのならなんとかなるんじゃないか?
俺は作らないけど。
0783nobodyさん
02/04/29 20:03ID:NmdFgil6お前らには無理
0784nobodyさん
02/04/29 20:18ID:???ごくろうさま
0785nobodyさん
02/04/29 20:33ID:???http://www.geocities.co.jp/SiliconValley-PaloAlto/2514/
頑張れ。>780
0786782
02/04/29 21:27ID:???とりあえずブックマークした。ありがとー。
と言うわけで頑張れ>780
0787nobodyさん
02/04/29 21:43ID:NmdFgil60789702
02/05/02 03:49ID:bk99oFiJどうしても、Threadが使いたかったので、Linuxに、perl5.005_03を
5005threadでコンパイルしました。
LWPモジュールを使って、CSVファイルから読み込んだ複数のURLに
GETするということをやっているのですが、これをThreadを使って、
同時にやると「セグメントエラー」を起こしてしまいます。
実際にエラーが起きているのは、HTTPリクエストを送って、
サーバーからのレスポンスを待っている部分です。
#HTTPリクエスト
$ua=new LWP::UserAgent;
$ua->agent($user_agent);
$ua->timeout($timeout);
$req=new HTTP::Request('GET',$url);
↓ここから
$res=$ua->request($req);
if($res->is_error)
{
print("$url($floor) => エラー [$time]\n");
return(1);
}
$body=$res->content;
↑ここまで
0790702
02/05/02 03:53ID:bk99oFiJすれば回避できるのですが、それではThreadにした意味がありません。
何か対処法はないものでしょうか?
0791nobodyさん
02/05/02 04:02ID:???cygwin perlでfork()使うとか、Win32::Processじゃダメなの?
0792nobodyさん
02/05/02 04:23ID:Opu6NMoF0793702
02/05/02 04:46ID:bk99oFiJではなくて、サブルーチン単位で処理を並列化したいのです。
(うまく言えてるかな?)Win32::Threadみたいなモジュールないですかね?
あと、上記789の問題は、LWPモジュールが並列処理に対応した作り方に
なっていないのではないかと勝手に考えているのですが・・・
どうなんでしょうか?
0794nobodyさん
02/05/02 05:20ID:???0795nobodyさん
02/05/02 06:54ID:???0797nobodyさん
02/05/02 11:34ID:???違ってたらスマソ。
そもそもLWPってthread-safeだったっけ。
5.005でthreadオンにしてコンパイルすると、
$_が大域変数からレキシカルに変わるけど、その辺大丈夫?
あと、これは念のため聞くだけだけど、各スレッドごとにuaをひとつ作ってるよね。
0798702
02/05/02 18:06ID:???>スレッドの独立性または排他処理は万全?
排他処理なんですけど、よく分かってないと思います。
スレッド内でmy宣言した変数に関しては排他処理してません。
グローバル変数に関しては、排他処理をしています。
スレッド内から呼び出すサブルーチンは排他処理をしていません。
(そのサブルーチン内で使う変数は全てmy宣言しているからです。)
こんな感じでいいでしょうか?
>>797
>そもそもLWPってthread-safeだったっけ。
thread-safeで作ってないとアウトなわけですね。
>5.005でthreadオンにしてコンパイルすると、
>$_が大域変数からレキシカルに変わるけど、その辺大丈夫?
特に問題ないと思います。
>あと、これは念のため聞くだけだけど、各スレッドごとにuaをひとつ作ってるよね。
はい。
0799nobodyさん
02/05/03 10:14ID:6+RS1vf90801nobodyさん
02/05/03 10:48ID:6+RS1vf9必死だな(w
0803nobodyさん
02/05/03 10:53ID:6+RS1vf9お前がな。
0804nobodyさん
02/05/03 13:21ID:???お前、perlがあると現れるな。
どうせperlしかわかんねーんだろ。
しかもこういう無意味な荒らししか出来ないし。
……同情するよ。
0805nobodyさん
02/05/03 13:25ID:6+RS1vf9php no sure ni itte kimasu!
0806nobodyさん
02/05/03 13:29ID:6+RS1vf90808nobodyさん
02/05/03 13:49ID:6+RS1vf90809nobodyさん
02/05/03 13:59ID:???もうこねぇよ!
また来る。
0810nobodyさん
02/05/05 04:04ID:???0811nobodyさん
02/05/06 01:59ID:???0812nobodyさん
02/05/06 11:09ID:???かちゅ動作test
0814nobodyさん
02/05/06 18:32ID:???申し訳ない。
明らかにログ詰まり起こしてそうだったので、
以下のテストに使わせて貰いました。
2ちゃん専用ブラウザ「かちゅ〜しゃ」Part63
http://pc.2ch.net/test/read.cgi/software/1020404962/607
0815nobodyさん
02/05/07 21:20ID:PMyxHEA3[回答]
っていう文字列を含む
テキストファイルの文字コードを
eucからjisに変換したんですけど
”[回答]”の部分だけ変換されません。(前のコードのまま)
これってバグですかね?
0818[perl:3137]
02/05/07 22:31ID:???Perl Q&A MLととマルチポストかよ。最悪だな。
0819nobodyさん
02/05/07 22:45ID:???0820nobodyさん
02/05/07 23:36ID:???http://pc.2ch.net/test/read.cgi/hp/1016938825/256
0821nobodyさん
02/05/07 23:38ID:???0822nobodyさん
02/05/08 07:50ID:WRPrJe8Iなんとか通す方法ないですかね〜
0825nobodyさん
02/05/09 08:09ID:x/QZinB2CEのPerlではPerlIDEというスクリプト打ち込み&実行用のインターフェースが
あるんですが、これがSJISになってしまうみたいです。EUCのスクリプトを直接
Perlに関連付けて実行したら日本語とおりました!ありがとう!
0826nobodyさん
02/05/17 23:27ID:KFbMHMgY0827nobodyさん
02/05/18 10:43ID:???0828nobodyさん
02/05/19 09:48ID:0aeIvu6E0829nobodyさん
02/05/19 14:12ID:???0830Perlしさん
02/05/20 01:18ID:???■ このスレッドは過去ログ倉庫に格納されています