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

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

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

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

#CGI関連の話題は、なるべく専用スレッドで。
0002_gunzip2001/05/31(木) 22:19ID:???
-----------------------------
Perl5.7.1(devel)ではハッシュ関数(hv.h内のマクロPERL_HASH)が
変更されているようですね。

/* hv.h 49-62 */

#define PERL_HASH(hash,str,len) \
  STMT_START { \
 register const char *s_PeRlHaSh = str; \
 register I32 i_PeRlHaSh = len; \
 register U32 hash_PeRlHaSh = 0; \
 while (i_PeRlHaSh--) { \
  hash_PeRlHaSh += *s_PeRlHaSh++; \
  hash_PeRlHaSh += (hash_PeRlHaSh << 10); \
  hash_PeRlHaSh ^= (hash_PeRlHaSh >> 6); \
 } \
 hash_PeRlHaSh += (hash_PeRlHaSh << 3); \
 hash_PeRlHaSh ^= (hash_PeRlHaSh >> 11); \
 (hash) = (hash_PeRlHaSh + (hash_PeRlHaSh << 15)); \
 } STMT_END

詳細は↓ここに記載されています。
http://burtleburtle.net/bob/hash/doobs.html
-----------------------------
・・・とか、こういった話題でいいのかな?
えと、とにかく初めのうちは積極的に寝たふりをお願いします。

#「俺はPerlをこんな風に活用している」とか、誰でも取り付きやすい話題があると賑わうのかな。
0003_gunzip2001/05/31(木) 22:23ID:???
誤>積極的に寝たふりをお願いします。
正>積極的にネタ振りをお願いします。
森首相じゃあるまいし....
0004名無しさん@お腹いっぱい。2001/06/01(金) 00:02ID:???
Perlのソースの話題…ですか
うう…レベルが違う(汗
0005名無しさん@お腹いっぱい。2001/06/01(金) 01:07ID:???
がいしゅつだろうけど、Perl6の話。
http://bulknews.net/lib/doc-ja/exegesis2.ja.html

%hash{value} @array[0] ... なんか気持ち悪いなぁ(笑)

しかも

$hash_ref = %hash; # %hashのリファレンスを取得
$hash_ref{value}; # %hash{value}と同じ事

ってことも出来るらしい…。
ワケ分からなくなりそう(笑)
0006(・ε・2001/06/01(金) 02:17ID:NgAAv9OY
いきなり厨房書き込みなんですけど、DOSのバッチでファイル名を
一括変換したり、秀のマクロで文字列変換するような作業を、スクリプト
でやってみようと思っています。

それで、Linuxのシェルスクリプトかperlを学ぼうを思ってるんです
が、貧乏なんで本が一冊しか買えません(^_^;)
bashで初めるシェルスクリプトか、オライリーさんのラマ本、、、、、
ん〜、どっちを買うべきだろう、、、、、、貧乏はいやだ〜
0007(・ε・2001/06/01(金) 02:23ID:???
うっ、何か場違いな感じ、、皆さんで話しあって立てたスレなんですね。
消えますー。
0008名無しさん@お腹いっぱい。2001/06/01(金) 03:13ID:A0sV3i8w
>>6
「CGIに依存しないPerlの話題一般」にはあてはまるんでない?
俺としてはPerlのほうをお勧めするよ。普及率で言えば
シェル >> Perl
だけれど、Perlのほうができることが多いし、DOSのバッチ的な用途にも
Perlはすごく向いている。
0009_gunzip2001/06/01(金) 06:46ID:???
>>4
あう、ソースを眺めていたらたまたま気づいただけです.....。
気軽に逝きませう。

>>5
確かに訳分からなくなりそうだ.....。
今までの$foo->[$n] が $foo[$n] (or $foo.[$n])で、$foo{bar} が %foo{bar} か.......。
うう.......慣れるまでの辛抱か。
ところでis演算子っていい感じ....(この辺りは意見が分かれるのかな)
サブルーチンの名前付きパラメータも有り難い。

>>6-7
bashシェルプログラミングと、Perlが共に学べる(らしい)
http://www.amazon.co.jp/exec/obidos/ASIN/4886485243/249-4475496-7314707
のような本もありますよ。
(自分は持っていないので、薦めて良いのかちょっと自信がありませんが)

ちなみに、Shellモジュールを利用すれば、シェルスクリプトを書く感覚で
Perlスクリプトを書くことが出来ます。
#でもやっぱりシェルスクリプトも書けた方がいいです。(はい)
0010_gunzip2001/06/01(金) 07:03ID:???
シェルで思い出したのですが、
Perl Power Tools: The Unix Reconstruction Project
http://language.perl.com/ppt/index.html
こんなのもあります。
Perlで書かれたcp,ls,diffコマンドなど色々揃っていますので、学習用にでも。
0011あげ2001/06/01(金) 15:35ID:???
Perl/Tkの話題も欲しいあげ
0012(・ε・2001/06/01(金) 19:29ID:NgAAv9OY
8さん、gunzipさん有難うございます。
8さんのおっしゃる様に取り合えずシェルはmanと睨めっこして
perlの本を買おうかな、、と思ったら、、、

>bashシェルプログラミングと、Perlが共に学べる(らしい)
良いッス、欲しいッス、直撃です(^ ^ )、同じ処理をbashとpealで
並べてくれてたりしたらいいなー、明日早速探しに行って見ます。

>Perl Power Tools: The Unix Reconstruction Project
こっちも凄いですね、厨房的には"perlって凄い"としか言えませんが (^^;;
しかも、かなりのコマンドがサポートされてるんですね。
頂いて、見てみます。

とても役立つご意見でした、有難う御座いました。
やっぱり聞いてよかったー
0013名無しさん@お腹いっぱい。2001/06/07(木) 04:54ID:G2lWQh7I
256バイトで何ができるか。
http://backno.mag2.com/reader/BackBody?id=200106032250000000015670000

256バイトの掲示板とか、無理か。

ARGVをevalするのは、インチキのような……>ライフゲーム
0014名無しさん@お腹いっぱい。2001/06/07(木) 10:08ID:???
>>13
256バイトは少ないよなぁ。
せめて7行は欲しいところ。

ARGVをevalするのは反則。
IO::Socketをuseするのも反則。
0015名無しさん@お腹いっぱい。2001/06/08(金) 15:39ID:???
warningプラグマって凄くメモリ食いそう(大きなハッシュを保持)
なんだけど、どうなの?
0016名無しさん@お腹いっぱい。2001/06/08(金) 17:17ID:???
>>14
7行あれば DVD のデコードができるもんね(w
0017名無しさん@お腹いっぱい。2001/06/08(金) 20:49ID:???
>>16
それしたの十六歳の少年だっけ?
0018名無しさん@お腹いっぱい。2001/06/08(金) 21:13ID:???
プログラム技術板で、船渡し問題を解いてたよね。
0019.pl2001/06/09(土) 00:05ID:LnGQ.bng
むむ、なんだこりゃ?
今日初めて気がついた…
#!/usr/bin/perl
use strict;
&set_foo;
my $foo;
print $foo;
sub set_foo{
$foo = 'bar';
}
__END__

うーん…変なの(++
0020名無しさん@お腹いっぱい。2001/06/09(土) 18:55ID:edu.PDfo
>>19
どうあるべきなの?
0021名無しさん@お腹いっぱい。2001/06/09(土) 19:05ID:G7GneXHo
ん〜、
#!/usr/local/bin/perl
use strict;
$foo = "bar";
my $foo;
print $foo;
__END__
ってやってみるとわかるよ。
やってることは同じように見えるけど実行結果が違う。
これの use strict をはずした奴もやってみると吉。
0022名無しさん@お腹いっぱい。2001/06/09(土) 23:05ID:???
http://www.iijnet.or.jp/cao/kantei/jp/comment_m.html
特殊文字って何?
\/*$%#&"!とか?(m
0023名無しさん@お腹いっぱい。2001/06/09(土) 23:13ID:???
正直言って、ろくな話題がでないな。
0024名無しさん@お腹いっぱい。2001/06/10(日) 00:30ID:???
>特殊文字って何?
>\/*$%#&"!とか?(m

スレお間違えですか?ここは
「CGIに依存しないPerlの話題一般」
です。
0025enhydra2001/06/10(日) 18:01ID:5nh0OkNc
>> 15
大丈夫、100Kbyte前後しか増えないから。
0026名無しさん@お腹いっぱい。2001/06/10(日) 18:33ID:???
>>25
CGIスクリプトとして動作させる場合はかなりやばいんじゃ…。
…と、思ったが、CGI.pmは+700kb近いな…warnings程度は余裕か。
0027(-_-;;)2001/06/10(日) 21:37ID:wIreiASQ
みんなはGUIのperlデバッガは何を使用してるの?
俺はhttp://world.std.com/~aep/ptkdb/を使用してます。
0028名無しさん@お腹いっぱい。2001/06/10(日) 21:41ID:???
すいませんGUIデバッガが必要なスクリプト書いたこと無いです(;´Д`)
0029名無しさん@お腹いっぱい。2001/06/10(日) 23:20ID:???
すいませんGUIなんて書いた事ないです。
0030名無しさん@お腹いっぱい。2001/06/10(日) 23:59ID:???
>>25-26
どうやったらメモリ使用量ってわかるの?
0031名無しさん@お腹いっぱい。2001/06/11(月) 00:00ID:???
GUIってなに?
Giants Uzeeeeeeeeeee Itteyoshi!!! の略?
0032名無しさん@お腹いっぱい。2001/06/11(月) 00:15ID:ozjTMEXg
コテハン一言スレに誤爆した37です。
なんだかわからないままWin2000でPerl/TKのmake中。。。
0033名無しさん@お腹いっぱい。2001/06/11(月) 00:20ID:???
>>32
Tcl/Tkは知らんから比べられないが、別に知らなくても良いんじゃないの?

…Perl/Tk使って何かした事は無いけどね(´∀`)

# Perl/Tk本はあるけどGUIプログラムを配布しようと思った事無いからね…
# 自分だけが使うツールにわざわざGUI付けるのもアホらしいし
0034enhydra2001/06/11(月) 00:41ID:g88SXDIU
>> 30
topとかlsこまんどのマニュアルをまんこまんどで見よ。です。

strictもwarningsもスピードなり消費リソースが気になるなら、コードをきれいにした後コメントアウトすれば済むし。おいら
は気にならないけど。
あとCGI.pm とか巨大なやつをWebアプリで使う時もmod_perlで親httpdにロードさせとけば子httpdで共有されるから実質的に
リソース(めもり)くわなくなるっすよね。
# おっとCGIよりなお話(汗)
0035322001/06/11(月) 00:42ID:???
>>33
さんきゅ! どこかでPerl/TK本見てくるよ!
ていうかmake失敗したんでこれから原因チェックせんと。
0036enhydra2001/06/11(月) 00:48ID:g88SXDIU
>> 34
いかん lsこまんどじゃ調べらんない(汁)
psコマンドのマニュアルをマンコマンドで見よ。の誤りっす。
0037名無しさん@お腹いっぱい。2001/06/11(月) 00:51ID:???
>>35
WIn2000ってぇとActivePerl?
ならPPMで一発じゃん?<Tk.pm
0038352001/06/11(月) 01:50ID:???
>>37
うぞ!? PPMに? あった〜 => http://www.ActiveState.com/packages/
ありがとー。
0039_gunzip2001/06/11(月) 01:52ID:???
Perl5.7.1-devel(with -DDEBUGGING,-DDEBUGGING_MSTATS,-D_REENTRANT)
-------------
sbrk()要求サイズ(PERL_DEBUG_MSTATS=1)

#(do nothing)
58392 bytes(6)

#use warnings;
284672 bytes(46)

#use CGI;
1232896 bytes(90)
0040_gunzip2001/06/11(月) 03:15ID:???
#↑書き込んだらNetscapeがgnome巻き込んで落ちた...。

>>13
256と言えば....Ascii256倍シリーズのPerl版でないかなあ....。
あれのC版(10年前?)は良かったし。

>>15
↑も参考に。
-DDEBUGGING,-DDEBUGGING_MSTATSスイッチを付けてコンパイルしたPerlで
環境変数PERL_DEBUG_MSTATSを1以上に設定してスクリプトを走らせると、
Perlインタプリタが利用するメモリに関する情報がいろいろ取得できます。

>>27-
殆ど話を聞かないけれど、VisualPerlってどんな感じなのかな?
たしかVisual Studio.NET Betaを持っている人は落とせた筈だけれど......。

自分の場合、GUIベースのデバッガと言えばDDDとかを偶に使う程度で、
大抵の場合 perl -d でケリが付きます。
0041_gunzip2001/06/11(月) 03:28ID:???
Tkもいいけれど、Gtk-Perlもよろしく。
#Gtk-Perlのサイトって皆無に等しいのが残念...。

リンク
http://projects.prosa.it/gtkperl/
http://personal.riverusers.com/~swilhelm/perlgtk/index.html
スクリーンショット
http://personal.riverusers.com/~swilhelm/gtkperl-tutorial/calendar.html#CALENDAR-FIGURE
http://personal.riverusers.com/~swilhelm/gtkperl-tutorial/spinbutton.html#SPINNER-FIGURE
http://personal.riverusers.com/~swilhelm/gtkperl-tutorial/tree.html#TREE-FIGURE
0042名無しさん@お腹いっぱい。2001/06/11(月) 19:09ID:???
>>41
Gtk-Perlって、Windows版はないよねぇ。
Gtkは移植されているんだから期待してるんだけど。

Perl/Tkなら、WindowsでもXでもちゃんと動くんで気持ちいい。
これでMac版があったらなぁ。
0043名無しさん@お腹いっぱい。2001/06/11(月) 23:15ID:???
>>41
んじゃ、自分でサイト立ててれば一挙解決ではでは?
0044名無しさん@お腹いっぱい。2001/06/12(火) 20:24ID:???
perl\site\lib 以下って何MBぐらいありますか?
0045名無しさん@お腹いっぱい。2001/06/12(火) 20:26ID:???
10MBくらい
0046_gunzip2001/06/12(火) 20:41ID:???
>>41
そこが残念なところだなあ.....。

ちなみに Gtk-Perl では、ちゃんとset_locale()呼んでおけば
日本語表示/編集共に問題なしです。

>>43
今作ってる所だょ。ヽ( ´ー`)ノ

>>44
34.1MBもあるが........。
0047_gunzip2001/06/12(火) 20:42ID:???
>>41 -> >>42
鬱だ。
0048rubbish_lister2001/06/12(火) 20:46ID:???
GTkなんてWindows使いの私には関係ないのさぁ(;;
0049名無しさん@お腹いっぱい。2001/06/14(木) 22:55ID:???
生のファイルハンドルリファレンスをselectすると挙動がぁゃιぃ…。
select(*STDOUT{IO});
print STDOUT select(), "\n";
0050名無しさん@お腹いっぱい。2001/06/15(金) 00:34ID:???
>>49
?なにがおかしい?
0051名無しさん@お腹いっぱい。2001/06/15(金) 10:29ID:xtaBOgm2
こんな大事なスレに気づかなかった。鬱だ。

>>18
船渡し問題のURLきぼーん。

正規表現のバックトラックで解いたの?
「正規表現エンジンで論理プログラミング」の例ってどっかにないかな。

>>9
>今までの$foo->[$n] が $foo[$n] (or $foo.[$n])で、$foo{bar} が %foo{bar} か.......。
>うう.......慣れるまでの辛抱か。
Damian Conwayも「最初は変な感じがしたけど、慣れたらこっちの方が
イイ!」だそうです。
http://yetanother.org/damian/talks/Perl6.pdf
0052名無しさん@お腹いっぱい。2001/06/15(金) 11:11ID:???
>>52
船渡し問題
http://piza.2ch.net/test/read.cgi?bbs=tech&key=990503990

問題クレクレ
http://piza.2ch.net/test/read.cgi?bbs=tech&key=989687023
この2つだよ。
0053522001/06/15(金) 11:12ID:???
あー、>>51です。
0054名無しさん@お腹いっぱい。2001/06/15(金) 16:24ID:???
>>52
見てきた。どういう家族だ。笑い。
0055名無しさん@お腹いっぱい。2001/06/19(火) 05:48ID:???
http://slashdot.org/developers/01/05/16/0054243.shtml
暴れてますなヽ(´ー`)ノ
0056名無しさん@お腹いっぱい。2001/06/20(水) 00:58ID:???
static が欲しいよう。

sub hoge{
  static my $count = 0;
 
0057名無しさん@お腹いっぱい。2001/06/20(水) 01:10ID:???
>>56
どんなメリットが?
■ このスレッドは過去ログ倉庫に格納されています