CGIに依存しないPerlの話題一般
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
2001/05/31(木) 21:49ID:bKRSBFew・モジュール、オブジェクト指向プログラミング
・Perl6や.NET対応など
・各種GUIツールキット(Perl/Tk, Gtk-Perlなど)
・他言語による拡張(Inline::*, XS, Swigなど)
についてマターリと語り合うスレッドです。
#CGI関連の話題は、なるべく専用スレッドで。
0030名無しさん@お腹いっぱい。
2001/06/10(日) 23:59ID:???どうやったらメモリ使用量ってわかるの?
0031名無しさん@お腹いっぱい。
2001/06/11(月) 00:00ID:???Giants Uzeeeeeeeeeee Itteyoshi!!! の略?
0032名無しさん@お腹いっぱい。
2001/06/11(月) 00:15ID:ozjTMEXgなんだかわからないままWin2000でPerl/TKのmake中。。。
0033名無しさん@お腹いっぱい。
2001/06/11(月) 00:20ID:???Tcl/Tkは知らんから比べられないが、別に知らなくても良いんじゃないの?
…Perl/Tk使って何かした事は無いけどね(´∀`)
# Perl/Tk本はあるけどGUIプログラムを配布しようと思った事無いからね…
# 自分だけが使うツールにわざわざGUI付けるのもアホらしいし
0034enhydra
2001/06/11(月) 00:41ID:g88SXDIUtopとかlsこまんどのマニュアルをまんこまんどで見よ。です。
strictもwarningsもスピードなり消費リソースが気になるなら、コードをきれいにした後コメントアウトすれば済むし。おいら
は気にならないけど。
あとCGI.pm とか巨大なやつをWebアプリで使う時もmod_perlで親httpdにロードさせとけば子httpdで共有されるから実質的に
リソース(めもり)くわなくなるっすよね。
# おっとCGIよりなお話(汗)
0036enhydra
2001/06/11(月) 00:48ID:g88SXDIUいかん lsこまんどじゃ調べらんない(汁)
psコマンドのマニュアルをマンコマンドで見よ。の誤りっす。
0037名無しさん@お腹いっぱい。
2001/06/11(月) 00:51ID:???WIn2000ってぇとActivePerl?
ならPPMで一発じゃん?<Tk.pm
003835
2001/06/11(月) 01:50ID:???うぞ!? PPMに? あった〜 => http://www.ActiveState.com/packages/
ありがとー。
0039_gunzip
2001/06/11(月) 01:52ID:???-------------
sbrk()要求サイズ(PERL_DEBUG_MSTATS=1)
#(do nothing)
58392 bytes(6)
#use warnings;
284672 bytes(46)
#use CGI;
1232896 bytes(90)
0040_gunzip
2001/06/11(月) 03:15ID:???>>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_gunzip
2001/06/11(月) 03:28ID:???#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:???Gtk-Perlって、Windows版はないよねぇ。
Gtkは移植されているんだから期待してるんだけど。
Perl/Tkなら、WindowsでもXでもちゃんと動くんで気持ちいい。
これでMac版があったらなぁ。
0043名無しさん@お腹いっぱい。
2001/06/11(月) 23:15ID:???んじゃ、自分でサイト立ててれば一挙解決ではでは?
0044名無しさん@お腹いっぱい。
2001/06/12(火) 20:24ID:???0045名無しさん@お腹いっぱい。
2001/06/12(火) 20:26ID:???0046_gunzip
2001/06/12(火) 20:41ID:???そこが残念なところだなあ.....。
ちなみに Gtk-Perl では、ちゃんとset_locale()呼んでおけば
日本語表示/編集共に問題なしです。
>>43
今作ってる所だょ。ヽ( ´ー`)ノ
>>44
34.1MBもあるが........。
0048rubbish_lister
2001/06/12(火) 20:46ID:???0049名無しさん@お腹いっぱい。
2001/06/14(木) 22:55ID:???select(*STDOUT{IO});
print STDOUT select(), "\n";
0050名無しさん@お腹いっぱい。
2001/06/15(金) 00:34ID:????なにがおかしい?
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:???船渡し問題
http://piza.2ch.net/test/read.cgi?bbs=tech&key=990503990
問題クレクレ
http://piza.2ch.net/test/read.cgi?bbs=tech&key=989687023
この2つだよ。
0054名無しさん@お腹いっぱい。
2001/06/15(金) 16:24ID:???見てきた。どういう家族だ。笑い。
0055名無しさん@お腹いっぱい。
2001/06/19(火) 05:48ID:???暴れてますなヽ(´ー`)ノ
0056名無しさん@お腹いっぱい。
2001/06/20(水) 00:58ID:???sub hoge{
static my $count = 0;
0057名無しさん@お腹いっぱい。
2001/06/20(水) 01:10ID:???どんなメリットが?
0058名無しさん@お腹いっぱい。
2001/06/20(水) 01:32ID:???グローバル変数みたいのを使いたくないから。
my $static = 0;
sub hoge{
if( .. ) $static++;
みたいのを良くやるので…。
何か良い方法あるのかな。(お手軽なやつで)
0059_gunzip
2001/06/20(水) 01:58ID:???#違うかな?
#!/usr/bin/perl
use strict;
{
# $countにはincr_count(),decr_count(),get_count()経由でのみアクセス可
my $count = 0;
sub incr_count{ $count++ }
sub decr_count{ $count-- }
sub get_count{ $count }
}
print get_count();
incr_count();
print get_count();
decr_count();
print get_count();
0060rubbish_lister
2001/06/20(水) 02:16ID:???無理かな?
0061名無しさん@お腹いっぱい。
2001/06/20(水) 02:32ID:???0062rubbish_lister
2001/06/20(水) 02:51ID:???package Static;
use 5.6.0;
use strict;
use base 'Exporter';
our @EXPORT_OK = qw/ static /;
sub TIESCALAR{
my $class = ref($_[0]) ? ref(shift) : shift;
my $self = [];
return bless $self, $class;
}
sub FETCH{
my $self = shift;
my $callline = (caller(1))[2];
return $self->[ $callline ];
}
sub STORE{
my $self = shift;
my $value = shift;
my $callline = (caller(1))[2];
$self->[ $callline ] = $value;
}
sub static($) : lvalue{
no strict 'vars';
local *staticvar = \$_[0];
tie $staticvar, __PACKAGE__;
$staticvar;
}
1;
__END__
0063rubbish_lister
2001/06/20(水) 02:52ID:???#!/usr/bin/perl
use Static qw/ static /;
static my $i = 0;
foreach (0 .. 10){
print count1(), "\n";
}
foreach (0 .. 10){
print count2(), "\n";
}
sub count1{ return $i++;}
sub count2{ return $i--;}
__END__
但し…ネタにしかならない。
0064rubbish_lister
2001/06/20(水) 17:18ID:???package Static;
use base 'Exporter';
@EXPORT_OK = qw/ static /;
use strict;
sub TIESCALAR{
my $class = ref($_[0]) || $_[0];
my $self = \do{ $_[1] };
return bless $self, $class;
}
my @values;
sub FETCH{ $values[ ${ $_[0] } ];}
sub STORE{ $values[ ${ $_[0] } ] = $_[1];}
my @vars;
sub static($) : lvalue{
no strict 'vars';
local *staticvar = \$_[0];
my($cline) = (caller(0))[2];
tie $staticvar, __PACKAGE__, $cline;
my $dumy;
$vars[ $cline ]++
? $dumy
: $staticvar;
}
1;
__END__
=head1 SYNOPSIS
use Static qw/ static /;
sub countup(){ static my $i = 0; return $i++ }
print countup, "\n" for(0 .. 10);
=cut
一連の駄レススマソ。
0065名無しさん@お腹いっぱい。
2001/06/20(水) 20:30ID:???なるほど。出現行数で変数を識別するのかー。
面白いっす。これってオリジナルのアイデア?
0066rubbish_lister
2001/06/20(水) 21:06ID:???>>62は思いついてすぐ作ったのでイマイチかな。
>>63は低速である事を覗けば実用化可能かな?
行番号で識別しているので"#line"などで行番号をいじると妙なことになりますが。
lvalueとtieを使うといろいろ遊べて楽しいですね。
0067_gunzip
2001/06/21(木) 22:44ID:???http://dev.perl.org/rfc/22.html
組み込みswitch-case文も導入(たぶん)ですね。
......とにかくC,C++,Javaみたいな"fall-through"がデフォルトでは無いようなので一安心。
# C# ではbreak,goto必須だし。
0068名無しさん@お腹いっぱい。
2001/06/22(金) 06:21ID:???0069_gunzip
2001/06/22(金) 06:45ID:???Perlのbool値はPL_sv_yes, PL_sv_noで表される。
/* perlvars.h */
PERLVARIC(GYes, char *, "1")
PERLVARIC(GNo, char *, "")
文字列リテラルさね。
0070名無しさん@お腹いっぱい。
2001/06/22(金) 21:10ID:???perldoc -q static
0071名無しさん@お腹いっぱい。
2001/06/25(月) 17:13ID:???0072名無しさん@お腹いっぱい。
2001/06/25(月) 18:06ID:..juuP4w0073名無しさん@お腹いっぱい。
2001/06/25(月) 23:28ID:???と、いうことは。。。
いまPerlの資格試験を新設したら受験料で大儲けかも?
いや、家元制度+段位制でもいいな。
Perl3級とか、Perl初段とかの免状を発行して大儲け。
0074名無しさん@お腹いっぱい。
2001/06/26(火) 00:11ID:???なんで世界規模のものを日本規模の制度にするんだよ(w
つーかネタか。
0075名無しさん@お腹いっぱい。
2001/06/26(火) 00:13ID:???0076名無しさん@お腹いっぱい。
2001/06/27(水) 16:13ID:Mv0nn73whttp://piza.2ch.net/test/read.cgi?bbs=tech&key=991994996&st=161
あっちの板の人は基本的にマルチリンガルだから、こういうの大好きなんだねえ。
おれとしては・・・面白そうだけど使わない、つーか使うテクがないなあ。
0077名無しさん@お腹いっぱい。
2001/06/27(水) 19:14ID:???殆んどいないと思うが...
0078名無しさん@お腹いっぱい。
2001/06/27(水) 19:51ID:???0079名無しさん@お腹いっぱい。
2001/06/27(水) 22:18ID:???0080rubbish_lister
2001/06/27(水) 23:54ID:???0081名無しさん@お腹いっぱい。
2001/06/28(木) 00:23ID:???0082名無しさん@お腹いっぱい。
2001/06/28(木) 12:17ID:???STLはPerl使いにはうれしい機能(連想配列モドキとか)がいろいろついてるのでぜひ覚えておくことをお勧めする。
0083_gunzip
2001/06/28(木) 16:15ID:???取りあえず使えるのは C,Perl,Java,C# とか。(C++は知らない)
その前はsed,awk(gawk)とかやってたけど、Perl憶えて以来不要になった。
---------
Perl for .NETって、Perlで書かれたコードを一度C#コードに変換してから
cscでコンパイルして実行モジュール、DLLを作るみたいだね。
0084名無しさん@お腹いっぱい。
2001/06/28(木) 16:49ID:???# 社内用にチョコチョコ作らされるけど
Perl・・・・厨房程度
PHP・・・・同上
VB・・・・同上
Ruby・・・・厨房以下
・
・
・
Mind・・・・挫折(ワラ
N88-Basic・・・・プロ級(ウソ
初めて作ったプログラムは FamilyBasic用ゲームプログラム。
0085S
2001/06/28(木) 18:18ID:???C … 消防
Prolog … 園児
って感じです。
0086名無しさん@お腹いっぱい。
2001/06/28(木) 20:34ID:???っていうかこの条件って誰か別の人が作ったゲームのヤツだ…
俺が見たやつはクリアするとアレなイベントが起きるっていうヤツだったけど。
#アレって何よってのは察してくれ…
…パクリ?
0087名無しさん@お腹いっぱい。
2001/06/28(木) 22:00ID:DSCSsXU2某所で長らく話題にのぼりながら、一向に実現されないやつだな。
本因坊は決まっているのになあ。
0088名無しさん@お腹いっぱい。
2001/06/28(木) 22:05ID:???0089名無しさん@お腹いっぱい。
2001/06/28(木) 22:06ID:DSCSsXU2え、そんな新しいものだったのか。
土人と宣教師みたいなトラディショナルなやつかと思ってたよ。
プログラミングの教科書にのってるわけじゃないの?
0090_gunzip
2001/06/28(木) 22:09ID:???提督 + 副官 + 謎の老人 + その友人 の4人バージョン
もしかしてそれのこと?
0091名無しさん@お腹いっぱい。
2001/06/28(木) 22:10ID:???|母がいないと父は娘に手を出す
|父がいないと母は息子に手を出す
|執事がいないと犬は家族を食い殺す
こんな問題のってる教科書があるかよ!
0092名無しさん@お腹いっぱい。
2001/06/28(木) 22:50ID:???いや、おいらが最初に見たやつは、砂漠を行く話で、
「父」:=「王」
「母」:=「女王」
「息子」:=「皇子」
「娘」:=「皇女」
「執事」:=「猛獣使い」
「犬」:=「猛獣」
「手を出す」:=「殺す」
だった。
王位継承問題がこじれて……ってな設定をすれば、
十分教科書に出せると思うが。
ちょっとsearch spaceとかprologとか
missionaries and cannibalsとかで
サーチしてみたけど出てこなかったなあ。
0093名無しさん@お腹いっぱい。
2001/06/29(金) 02:28ID:???中学校の数学サイトで発見!
http://www.edu-c.pref.kumamoto.jp/ws/kcmathws/zibunde/kawa2/kawa2.html
その「アレなイベントが起きる」とかいう問題を
中学教師がパクって無難な設定に変えた可能性も高いが。
0094名無しさん@お腹いっぱい。
2001/06/29(金) 12:11ID:???いや、大元のネタはその辺りだと思うんだが。
手を出す食い殺すってのは、半年以上前(多分)に既に使われてるネタだってことだ。
#つーかすれ違いスマソ
0095名無しさん@お腹いっぱい。
2001/06/29(金) 15:40ID:???「手を出す食い殺す」設定→あるあるー
と思ってしまう俺はなにかに毒されているでしょうか。
0096名無しさん@お腹いっぱい。
2001/07/02(月) 17:48ID:cRPRYcUw0097なな
2001/07/02(月) 20:18ID:???/(だった|で((御座|ござ)(い|居)ま)?した|であ(っ|りまし)た)(な)?ら(ば)?
|であれば|(である)?なら(ば)?/
…氏にそう。おれに日本語を教えてくれ。いやマジで。
0098Name_Not_Found
2001/07/02(月) 20:54ID:???ワラタ
0099名無しさん@お腹いっぱい。
2001/07/02(月) 21:17ID:???無修正です。
0100_gunzip
2001/07/03(火) 01:08ID:???デザインが変わったね。
0101名無しさん@お腹いっぱい。
2001/07/03(火) 12:24ID:fLxGSuZsuse Perl;でも話題になってた。
Perlのメインサイトがオライリーっぽくなりすぎで興ざめだってさ。
0102rubbish_lister
2001/07/03(火) 17:26ID:???矢印演算子?まさかね…。
0103名無しさん@お腹いっぱい。
2001/07/03(火) 21:19ID:fLxGSuZsああ、それperl6-languageとperl6-internalsで話題になってたなあ。
Simon Cozensが「~」を提案して論争になってた。
どう終結したんだろう。
……(メールアーカイブを検索中)……
うむー、どうにもなってないなー。
Larryが反応するまで決まらなさそうだ。
興味のある人は "The Perl6 Emulator" から続く話をどうぞ。
http://archive.develooper.com/perl6-language%40perl.org/msg07598.html
0104名無しさん@お腹いっぱい。
2001/07/04(水) 13:12ID:???"100" + "100" が 200 になるっつうのがそもそもの間違い。
0105rubbish_lister
2001/07/04(水) 16:20ID:???"~" ですか…。
$str = $str ~ $str; $str ~= $str;
うーん…なにか間違っているような気が(汗
素直に参照/メソッド起動はアロー演算子、文字列結合はドット演算子としておけばいいのに。
0106名無しさん@お腹いっぱい。
2001/07/04(水) 20:52ID:dDBXzh2.文字列連結と数値的加算という、意味も動作もまったく違うものに
同じ演算子を使うのは混乱の元だと思う。
演算子オーバーロードに関してはLarryが
数学記号は数学的意味を表わす場合のみにしましょうね
という指針を示している。「+」を使っていいのは複素数とか行列みたいな、
交換法則と結合法則を満たすもののみに限定されるべきという話。
確かに文字列の連結って可換じゃないし、
逆演算を「-」で無理矢理定義してもピンと来ない。
文字列の連結に「+」を使うというのを最初に考えついた人って誰?
その人が素直じゃなかったんだと思う。Smalltalkのころ?
「末尾への連結」に「<<」を使うことを考えついた人もえらい。
常人の発想ではない。狂っている。
ストリームへの出力と配列へのpushを、
「末尾への連結と見れば同じ」と考えてかどうか知らないが、
「<<」という同じ記号っていうのも発想がすごい。
「>>」はきっとその逆演算なのだろうと予想できるが、
popなのかunshiftなのか、はたしてどっち?
Perl6のswitch文(仮名)もこの話と同類の気狂い仕様な気がするな。
これがRubyだと「メソッド===で比較」って言い方になって、
polymorphismというカプセルに入った結果、
同じ気狂い仕様なのに美しく見えるのは不思議だ。
0107名無しさん@お腹いっぱい。
2001/07/04(水) 22:11ID:???\____ ____/
 ̄ ̄ ̄∨ ̄ ̄ ̄
〃┏━━ 、
| ノノソハ)))
(\リリ;´Д⊂#ヽ
(ニ⊂[#~~'∞"_ノ
/__∞_|
し'(_f)
0108Perl好き
2001/07/04(水) 22:54ID:???今までRuby信者に汚いと罵られようと、感覚的にとても解りやすい言語だと思ってたが、
アロー廃止、$@%の意味変更は滅茶苦茶な愚行だ。
でももう決定事項なんだろうな。ああ鬱。
マジでRubyに移ろうかしら。
0109名無しさん@お腹いっぱい。
2001/07/05(木) 02:33ID:NIXF4Exg0110名無しさん@お腹いっぱい。
2001/07/05(木) 03:07ID:f2quMIhg予想では再来年のPerl Conference合わせくらいじゃなかったっけ。
0111名無しさん@お腹いっぱい。
2001/07/05(木) 06:48ID:j7I9hWXA全くもって同感
0112shige
2001/07/05(木) 11:19ID:???イエイ!
0113106
2001/07/05(木) 15:25ID:???配列の連結にも「+」を使うからねえ……。
そういえばCでもポインタの加算という意味のまったく
違う仕事を「+」と書いていたなあ。
「Perlは様々な組込関数のデフォルト挙動を、
たくさん覚えないと使えないからイヤ」って意見をよく聞くけど、
「OO言語は一見同じ記号でもクラスによって全然違う動作をするんで、
たくさん覚えないと使えないからイヤ」とはあまり聞かないね。
むしろ「全然違う動作でも意識せず同じ記号で使える」とか利点として
紹介されている。
でもRubyの言語仕様書とか見てると、
OO言語って演算子オーバーロードなしには、
言語仕様も定義できないのかな、と思ってしまう。
JavaはC++の反省からか演算子オーバーロードできないけど、
結果としてなにがしかの利便性は失われているみたいだ。
Perl6になるとARRAYの「+」は連結になったりするのかなあ。
Larryが防波堤になってくれると信じてるんだけど。
OOスレ逝った方がいいな。スレ違いスマソ。
0114名無しさん@お腹いっぱい。
2001/07/05(木) 15:27ID:???ま、Perl6でもPerl5のコードが走るはずだし、それに期待するしか。
0115名無しさん@お腹いっぱい。
2001/07/05(木) 16:32ID:???0116名無しさん@お腹いっぱい。
2001/07/05(木) 18:07ID:???うーん……
0117名無しさん@お腹いっぱい。
2001/07/06(金) 05:20ID:dr/SZh9Uhttp://corn.2ch.net/test/read.cgi?bbs=php&key=991966646
0118名無しさん@お腹いっぱい。
2001/07/06(金) 06:45ID:???0119名無しさん@お腹いっぱい。
2001/07/06(金) 10:18ID:???0120名無しさん@お腹いっぱい。
2001/07/06(金) 22:49ID:???0121名無しさん@お腹いっぱい。
2001/07/08(日) 22:16ID:???0122名無しさん@お腹いっぱい。
2001/07/09(月) 02:39ID:???なにがかわったん?
0123名無しさん@お腹いっぱい。
2001/07/09(月) 02:53ID:???知らん。
俺も知りたいYO!
0124名無しさん@お腹いっぱい。
2001/07/09(月) 10:27ID:???0125名無しさん@お腹いっぱい。
2001/07/09(月) 11:06ID:nTmH2gQU試してみた人いる?
0126名無しさん@お腹いっぱい。
2001/07/15(日) 22:57ID:3qwmQFts0127名無しさん@お腹いっぱい。
2001/07/16(月) 01:33ID:OyRSiVOsでてるよー。
http://search.cpan.org/search?dist=perl-5.7.2
僕はあえてdevelに挑戦するつもりないけど...。
0128_gunzip
2001/07/16(月) 21:00ID:???入れてみたけれど、unicode周りが変更になった他は
大して変わっていないみたいだね。
最近CPAN2の存在を知った・・・
http://cpan2.org/
0129名無しさん@お腹いっぱい。
2001/07/16(月) 21:32ID:4EOT0rSw#!/usr/bin/perl
BEGIN{
use overload '<<' => sub{
my($self, $str) = @_;
print {$self} $str;
return $self;
};
my $stdout = bless \*STDOUT;
*out = sub(){ $stdout };
}
exit;
out << "==========終了済み==========" << "\n";
__END__
このコードなんですが、実行するとexit()しているのも関わらず
"終了済み"と印字されます。
$stdoutがグローバル変数だったり
out()をsub out(){$stdout}で宣言すると何もせず終了します。
これはどういうことなんでしょうか。
環境:
WindowsMe ActivePerl 5.6.0.623
■ このスレッドは過去ログ倉庫に格納されています