トップページ⇒php
988コメント342KB

CGIに依存しないPerlの話題一般

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2001/05/31(木) 21:49ID:bKRSBFew
・コマンドラインからのPerl活用
・モジュール、オブジェクト指向プログラミング
・Perl6や.NET対応など
・各種GUIツールキット(Perl/Tk, Gtk-Perlなど)
・他言語による拡張(Inline::*, XS, Swigなど)

についてマターリと語り合うスレッドです。

#CGI関連の話題は、なるべく専用スレッドで。
0751nobodyさん02/04/24 23:07ID:z19r++98
プロバのサービスにあるようなWeb上からパスワード変更のCGIを
作りたいのだが、サンプルないですか??
0752nobodyさん02/04/24 23:16ID:???
>>750←まさに今病院からカキコ
0753nobodyさん02/04/24 23:29ID:???
>>752 さっさと病室に帰ろうね。
0754nobodyさん02/04/24 23:30ID:???
>>751
スレタイトル読めますか。読めないんだろうね。
0755あぼーんNGNG
あぼーん
0756nobodyさん02/04/25 13:27ID:vqNaBvlX
Redhat LinaxでPerl5.6.0をインストールしようとすると
「./Configure」の後の「make」でエラーになってしまいます。

エラーは最後の行にこんな感じで表示されてました。
make: *** [miniperl] エラー1

Linaxにさわって間もないので、よくわからないのですが、
何かしなければいけないのでしょうか?
0757nobodyさん02/04/25 13:58ID:???
さすが兄貴、tar.gzですか。
まぁ、rpmにしたところで、apt-getにはかなわんな。
0758nobodyさん02/04/25 19:17ID:???
程度の低い書き込みはいらん
0759nobodyさん02/04/26 03:29ID:???
>>756
それだけじゃわからんので答えられないが、perl5.6.0はよしとけ。
コンパイルするんだったらちゃんとwww.perl.comから
perl5.6.1(stable.tar.gz)をひろってきなさいな。
076075602/04/26 07:26ID:xOSV8XDg
>>759
一応、www.perl.comから落としたstable.tar.gzなんですよ。
しょうがないので、perl5.005_03.tar.gzにしたら大丈夫でした。
076175902/04/26 07:37ID:???
>>760
ということはそれはperl5.6.1のはずだけど・・・ただの間違い?
できれば5.6.1のほうがいいよ。大分違うから。

次からはどこでこけたのかしっかり書き出すべし。
0762nobodyさん02/04/28 03:22ID:W+plYXX7
age
0763nobodyさん02/04/28 03:26ID:???
レベルの高い話題とは、具体的にどんなもの?
0764nobodyさん02/04/28 14:48ID:???
>>763
foreachの計算量とか。
0765nobodyさん02/04/28 15:21ID:???
>>764
>foreachの計算量とか。

?
0766nobodyさん02/04/28 15:33ID:???
>>763
!レベルの低い話題(誰でも判断可能)
0767ぺるにゃん02/04/28 19:48ID:gfGqCBjT
>>764
>foreachの計算量とか。

何のことですかにゃ???


そういえば、はるか昔、Perl 5.005 くらいか、

 foreach (1..1000000)
 とやったときに、巨大な配列を作らないようにしました。

という仕様変更を見ましたが、これってどういう仕組みなのかどなたかご存知ですか?

( ) の中を変数展開することなしに、foreach ループを実行するってことなのかなぁ。
そんなことができるんだったら、foreach (@big_array) も効率は悪くない。

そうではなくて、
「foreach ( 数字..数字 ) はよく使われる書法だから、この場合のみ最適化した」
というのであれば、foreach (@big_array) の効率が上がったわけではないのにゃ…。
0768nobodyさん02/04/28 20:54ID:???
>>767
昔は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の生成破棄にかかる時間を節約することができるからでしょう。
(とはいえ、わずかな時間ですから気にする必要は全くありません)
077076802/04/28 22:51ID:???
なるほど〜ご指摘感謝。
面白いなぁ。
0771nobodyさん02/04/28 23:43ID:???
このように、くだらなくない話題は見る人が見ないと基地外発言と勘違いされます。とw
0772nobodyさん02/04/29 08:55ID:???
`kill -KILL _gunzipのPID` if $user eq '_gunzip';
0773nobodyさん02/04/29 09:08ID:???
<>769は初心者です<>
0774nobodyさん02/04/29 09:27ID:???



`kill -KILL _gunzipのPID` if $user eq '_gunzip';



0775nobodyさん02/04/29 13:27ID:5LS+M/ng
>>771
haxa?
0776nobodyさん02/04/29 14:09ID:???
朝から粘着くんがんばるね。
0777nobodyさん02/04/29 14:12ID:NmdFgil6
必死だな。死ねよ
お前が消えるまでこのスレッドを荒らす
0778nobodyさん02/04/29 14:18ID:???
>>777
おまえ、風呂入ったか?くさいよ。
0779あぼーんNGNG
あぼーん
0780nobodyさん02/04/29 14:43ID:???
Perl/Tkに詳しい人お願い。
perl/tkで「何か」を作ることは出来る?
0781nobodyさん02/04/29 16:10ID:D6ncuE9T
Perl/Tkでテキストウェジットっていうのかな?
ブラウザで言うところの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:???
>>780
昔一瞬作ろうと思ったけどすぐ止めた。
変な形のWindowの作り方がわからなかったから。
まぁ、四角い箱の中で動くのならなんとかなるんじゃないか?
俺は作らないけど。
0783nobodyさん02/04/29 20:03ID:NmdFgil6
>>780,781
お前らには無理
0784nobodyさん02/04/29 20:18ID:???
>NmdFgil6
ごくろうさま
0785nobodyさん02/04/29 20:33ID:???
>>780 >>782
http://www.geocities.co.jp/SiliconValley-PaloAlto/2514/
頑張れ。>780
078678202/04/29 21:27ID:???
げ、出来るのか・・・・
とりあえずブックマークした。ありがとー。
と言うわけで頑張れ>780
0787nobodyさん02/04/29 21:43ID:NmdFgil6
(゚Д゚)ハァ?
0788nobodyさん02/04/29 22:40ID:???
>>771
>>くだらなくない話題は見る人が見ないと基地外発言と勘違いされます。
つまりこういう人か? >>772-774 (w
078970202/05/02 03:49ID:bk99oFiJ
先日、WindowsマシンでThread.pmを使おうともがいていた702です。
どうしても、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;
↑ここまで
079070202/05/02 03:53ID:bk99oFiJ
789で起こる「セグメントエラー」はエラー箇所をlock関数でlock
すれば回避できるのですが、それではThreadにした意味がありません。
何か対処法はないものでしょうか?
0791nobodyさん02/05/02 04:02ID:???
Thread.pmってのがよくわからないので何とも言えないが、
cygwin perlでfork()使うとか、Win32::Processじゃダメなの?
0792nobodyさん02/05/02 04:23ID:Opu6NMoF
ぷぷぷ分からないなら分からないと初めから言えよ(ppp
079370202/05/02 04:46ID:bk99oFiJ
Win32::Processってプログラム単位の呼び出しになるんですよね?
ではなくて、サブルーチン単位で処理を並列化したいのです。
(うまく言えてるかな?)Win32::Threadみたいなモジュールないですかね?
あと、上記789の問題は、LWPモジュールが並列処理に対応した作り方に
なっていないのではないかと勝手に考えているのですが・・・
どうなんでしょうか?
0794nobodyさん02/05/02 05:20ID:???
forkでよくねーか?
0795nobodyさん02/05/02 06:54ID:???
IO::SelectとIO::Socketの組み合わせで擬似的に並列処理するとか。
0796nobodyさん02/05/02 08:21ID:???
>>793
スレッドの独立性または排他処理は万全?
0797nobodyさん02/05/02 11:34ID:???
Win32のfork()って、OSから見るとスレッドじゃなかった?
違ってたらスマソ。

そもそもLWPってthread-safeだったっけ。
5.005でthreadオンにしてコンパイルすると、
$_が大域変数からレキシカルに変わるけど、その辺大丈夫?

あと、これは念のため聞くだけだけど、各スレッドごとにuaをひとつ作ってるよね。
079870202/05/02 18:06ID:???
>>796
>スレッドの独立性または排他処理は万全?
排他処理なんですけど、よく分かってないと思います。
スレッド内でmy宣言した変数に関しては排他処理してません。
グローバル変数に関しては、排他処理をしています。
スレッド内から呼び出すサブルーチンは排他処理をしていません。
(そのサブルーチン内で使う変数は全てmy宣言しているからです。)
こんな感じでいいでしょうか?

>>797
>そもそもLWPってthread-safeだったっけ。
thread-safeで作ってないとアウトなわけですね。

>5.005でthreadオンにしてコンパイルすると、
>$_が大域変数からレキシカルに変わるけど、その辺大丈夫?
特に問題ないと思います。

>あと、これは念のため聞くだけだけど、各スレッドごとにuaをひとつ作ってるよね。
はい。
0799nobodyさん02/05/03 10:14ID:6+RS1vf9
ばーkぁ
0800nobodyさん02/05/03 10:26ID:???
>>799←典型例
0801nobodyさん02/05/03 10:48ID:6+RS1vf9
>>800
必死だな(w
0802nobodyさん02/05/03 10:49ID:???
>>801
お前がな。
0803nobodyさん02/05/03 10:53ID:6+RS1vf9
>>802
お前がな。


0804nobodyさん02/05/03 13:21ID:???
> 6+RS1vf9
お前、perlがあると現れるな。
どうせperlしかわかんねーんだろ。
しかもこういう無意味な荒らししか出来ないし。
……同情するよ。
0805nobodyさん02/05/03 13:25ID:6+RS1vf9
>>804
php no sure ni itte kimasu!
0806nobodyさん02/05/03 13:29ID:6+RS1vf9
phphphphphphphphphphphphphphphphphphphphphphphphphphphphphphphphphphphphphphphphphphphphphp
0807nobodyさん02/05/03 13:43ID:???
>>804
お願いだからこれ以上被害拡大させないでくれ・・・・
0808nobodyさん02/05/03 13:49ID:6+RS1vf9
もう来ません。さようなら
0809nobodyさん02/05/03 13:59ID:???
あるある厨房大辞典 その3
もうこねぇよ!

また来る。
0810nobodyさん02/05/05 04:04ID:???
.
0811nobodyさん02/05/06 01:59ID:???
程度の低いスレだな。
0812nobodyさん02/05/06 11:09ID:???
ログ詰まり?
かちゅ動作test
0813nobodyさん02/05/06 14:43ID:???
>>812
あちこちのスレにゴミレスすんなヴォケが。
あぼーんされたんだよ。
「あぼーん」って知ってるか?
0814nobodyさん02/05/06 18:32ID:???
>>813
申し訳ない。
明らかにログ詰まり起こしてそうだったので、
以下のテストに使わせて貰いました。

2ちゃん専用ブラウザ「かちゅ〜しゃ」Part63
http://pc.2ch.net/test/read.cgi/software/1020404962/607
0815nobodyさん02/05/07 21:20ID:PMyxHEA3
jcode.plで

[回答]

っていう文字列を含む
テキストファイルの文字コードを
eucからjisに変換したんですけど
”[回答]”の部分だけ変換されません。(前のコードのまま)
これってバグですかね?
0816nobodyさん02/05/07 21:43ID:???
>>815
で、JISとして表示すると文字化けになるのかい?
万が一そうだとしたら、バグだな。
0817nobodyさん02/05/07 21:52ID:???
>>815

ここじゃなくて歌代さんにきけって。もちろんドキュメントを読んでからだけど。
0818[perl:3137]02/05/07 22:31ID:???
>>815
Perl Q&A MLととマルチポストかよ。最悪だな。
0819nobodyさん02/05/07 22:45ID:???
つか余裕で変換されるんですけど
0820nobodyさん02/05/07 23:36ID:???
>>815
http://pc.2ch.net/test/read.cgi/hp/1016938825/256
0821nobodyさん02/05/07 23:38ID:???
このスレも終わりだな。
0822nobodyさん02/05/08 07:50ID:WRPrJe8I
CE用のPerlって日本語が通らないのですが、
なんとか通す方法ないですかね〜
0823nobodyさん02/05/08 08:49ID:???
>>822
ない
0824nobodyさん02/05/08 17:15ID:???
>>822
EUCで処理すればいいんでないの?
0825nobodyさん02/05/09 08:09ID:x/QZinB2
>824
CEのPerlではPerlIDEというスクリプト打ち込み&実行用のインターフェースが
あるんですが、これがSJISになってしまうみたいです。EUCのスクリプトを直接
Perlに関連付けて実行したら日本語とおりました!ありがとう!
0826nobodyさん02/05/17 23:27ID:KFbMHMgY
アレが上位にあるのはちょっとね…
0827nobodyさん02/05/18 10:43ID:???
アレとは?
0828nobodyさん02/05/19 09:48ID:0aeIvu6E
5.8.0まだ?
0829nobodyさん02/05/19 14:12ID:???
Storable2.0でた
0830Perlしさん02/05/20 01:18ID:???
なんすかそれ?
0831nobodyさん02/05/20 08:51ID:???
>>830
リファレンスをファイル等に保存できるような形に変換する。

以下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:???
Perl5.8-RC1きた。

http://search.cpan.org/search?dist=perl-5.8.0-RC1

個人的に心配なのはExtUtils::MM_Win95。
これ、バグがあんだよね。どうしたもんだろ。
0833nobodyさん02/06/02 14:47ID:Jwd6tv1U
age忘れ。
0834102/06/03 01:32ID:???
糞スレあげるなヴォケ
0835lo02/06/04 18:37ID:???
Perl5.8キター
0836102/06/04 19:55ID:???
どうでもいいことで上げるな。
0837lo02/06/04 22:30ID:???
>>836
ハァ?

お前にとって、どうでもよくないことを言ってみろや
0838nobodyさん02/06/04 23:09ID:???
>>837
ムキになるなって(わら
たかがバージョンアップ程度で何のネタもないのに上げるな。アホか
0839nobodyさん02/06/04 23:13ID:???
>>835,837
気にするなよ、このスレどう見ても変なのが居るだろ?
0840nobodyさん02/06/04 23:17ID:???
>>839
お前みたいな偽善者とか、な。
うざいコテハンを全員追い出して殺ったんだから、少しは感謝しろ。
一年以上たってもPART2にも行かないスレが糞スレ以外の何なんだよ。え?言ってみろ(p
0841nobodyさん02/06/04 23:19ID:???
最初の方は良い感じだったね。このスレ...。
0842nobodyさん02/06/04 23:23ID:???
はいはい。よかったね
0843nobodyさん02/06/05 10:07ID:???
>>738>>742
お前まだ居たのか。しつこい粘着だな…
0844nobodyさん02/06/05 13:00ID:???
5.8が正式リリースされたら今度こそJPerlは要らなくなるね。
って元々使ってなかったからイイけど。
0845nobodyさん02/06/05 17:36ID:???
----------------------------------------------------------------
                  終了
----------------------------------------------------------------
0846nobodyさん02/06/05 17:36ID:???
----------------------------------------------------------------
                  終了
----------------------------------------------------------------
0847nobodyさん 02/06/05 22:00ID:???
845 がウザ書き込みを行いました。
846 がウザ書き込みを行いました。
0848nobodyさん02/06/08 23:38ID:???
つーかさっさとWinでGTK+が使えるようにしてほすぃ
0849nobodyさん02/06/09 16:18ID:???
自分でやれよ。
できないなら黙ってろ。
0850nobodyさん02/06/09 16:53ID:???
>>849
ずっとこのスレ観察してんの?ゴクロウサマ
■ このスレッドは過去ログ倉庫に格納されています