CGIに依存しないPerlの話題一般
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
2001/05/31(木) 21:49ID:bKRSBFew・モジュール、オブジェクト指向プログラミング
・Perl6や.NET対応など
・各種GUIツールキット(Perl/Tk, Gtk-Perlなど)
・他言語による拡張(Inline::*, XS, Swigなど)
についてマターリと語り合うスレッドです。
#CGI関連の話題は、なるべく専用スレッドで。
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:???0831nobodyさん
02/05/20 08:51ID:???リファレンスをファイル等に保存できるような形に変換する。
以下StorableのSYNOPSISよりコピペ
use Storable;
store \%table, 'file';
$hashref = retrieve('file');
use Storable qw(nstore store_fd nstore_fd freeze thaw dclone);
# Network order
nstore \%table, 'file';
$hashref = retrieve('file'); # There is NO nretrieve()
# Storing to and retrieving from an already opened file
store_fd \@array, \*STDOUT;
nstore_fd \%table, \*STDOUT;
$aryref = fd_retrieve(\*SOCKET);
$hashref = fd_retrieve(\*SOCKET);
# Serializing to memory
$serialized = freeze \%table;
%table_clone = %{ thaw($serialized) };
# Deep (recursive) cloning
$cloneref = dclone($ref);
# Advisory locking
use Storable qw(lock_store lock_nstore lock_retrieve)
lock_store \%table, 'file';
lock_nstore \%table, 'file';
$hashref = lock_retrieve('file');
0832nobodyさん
02/06/02 14:47ID:???http://search.cpan.org/search?dist=perl-5.8.0-RC1
個人的に心配なのはExtUtils::MM_Win95。
これ、バグがあんだよね。どうしたもんだろ。
0833nobodyさん
02/06/02 14:47ID:Jwd6tv1U08341
02/06/03 01:32ID:???0835lo
02/06/04 18:37ID:???08361
02/06/04 19:55ID:???0840nobodyさん
02/06/04 23:17ID:???お前みたいな偽善者とか、な。
うざいコテハンを全員追い出して殺ったんだから、少しは感謝しろ。
一年以上たってもPART2にも行かないスレが糞スレ以外の何なんだよ。え?言ってみろ(p
0841nobodyさん
02/06/04 23:19ID:???0842nobodyさん
02/06/04 23:23ID:???0844nobodyさん
02/06/05 13:00ID:???って元々使ってなかったからイイけど。
0845nobodyさん
02/06/05 17:36ID:???終了
----------------------------------------------------------------
0846nobodyさん
02/06/05 17:36ID:???終了
----------------------------------------------------------------
0847nobodyさん
02/06/05 22:00ID:???846 がウザ書き込みを行いました。
0848nobodyさん
02/06/08 23:38ID:???0849nobodyさん
02/06/09 16:18ID:???できないなら黙ってろ。
■ このスレッドは過去ログ倉庫に格納されています