2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

オブジェクト指向perl

1 :nobodyさん:02/05/29 01:51 ID:vRl7MJUj.net
モジュールを作ろうとしているのですが、何か分かりやすい参考書
やサイトないですか?なかなか見つかりません。

82 :nobodyさん:05/02/20 14:47:41 ID:tXrbjTyl.net
(^-^::)->


83 :nobodyさん:05/02/20 17:58:25 ID:???.net
≒ってどういう意味だっけ

84 :nobodyさん:05/02/21 11:26:28 ID:???.net
大体等しい

85 :nobodyさん:05/02/22 05:38:41 ID:???.net
「オブジェクト指向Perlマスターコース」は良い本だ。
OOPじゃないPerlの解説も親切でわかりやすい。
俺はラクダ本を読んだことがないのでこれを読んでようやくlocalとmyの違いがわかった。
一般書籍レベルの解説書にはそれぞれの変数の振る舞いについては欠かれていたが、
本質的な定義について理解できたのは偏にこの本のお陰だ。
ちょっとでもOOPに興味があったら買うべし。

>>80
それはPerl4の頃の仕様じゃないか?
昔は名前空間の定義が曖昧だったためにパッケージ変数にアクセスするときに
「$パッケージ名'型グロブ」としていたときのものと思われる。
互換性を保つためにPerl5でもそれが読めるようだが、本質的にPerlオブジェクトは
$スカラにオブジェクトへのリファレンスを格納して->でデリファレンスするので
オブジェクトメソッドにアクセスするには->を使う。
ちなみに::はPerl5以降での名前空間の参照に用いる。

これでわかるか?てか合ってるかな?

86 :80:05/02/23 00:20:16 ID:???.net
>>85
ありがとうございます。
違いが良く判りましたです。

87 :85:05/02/23 02:16:19 ID:???.net
微妙に間違い。
×「$パッケージ名'型グロブ」
○「*パッケージ名'型グロブ」
たまに配布版掲示板CGIなんかでjcode.plをこの方法で使っているのを見かける。

わかったなら良かったよ・・・。

88 :nobodyさん:2005/04/11(月) 20:39:48 ID:gPOrHcmM.net
ちょっと言い方がおかしいかもしれませんが…

$class = new Class;として、
$class->func(...); と Class::func($class, ...); はほぼ同じときいたので、
ちょっと汚く見えますけどClass::func($class, ...);と書いても問題はないのでしょうか。

Class::func()のほうはただサブルーチンを呼び出しているだけなので
$class->func()より速いという結果になりました(当たり前ですけど…)。

$classが何のオブジェクトか分からない場合は->演算子を使うのですが、
$classが必ず"Class"のオブジェクトでしかありえない場合では普通に呼び出したいと思うことがあります。


89 :nobodyさん:2005/04/11(月) 20:43:51 ID:???.net
ええけつしとるのぉ(*´Д`)ハァハァ
http://192.168.0.5/
http://192.168.0.5/~ss.jpg
http://kouichi/
http://kouichi/~ss.jpg


90 :nobodyさん:2005/04/13(水) 02:23:33 ID:???.net
>>88
そうでなく、静的かインスタンスかで理解したほうが。
コンストラクタでblessした$selfなんかの値は使えないよ。

91 :nobodyさん:2005/04/18(月) 17:58:39 ID:???.net
>>90
遅れてすみません。
Class::func("Class",...);はいいけどClass::func($class,...);は駄目ということですよね。
(あまり理解できていないような気がします、ちょっと不安…)
ありがとうございました。

92 :nobodyさん:2005/05/29(日) 01:27:45 ID:???.net
@ISA を直接いじらず use base するメリットってなんでしょうか。


93 :nobodyさん:2005/05/29(日) 16:52:06 ID:???.net
Perl5でOOPするのに良いモジュール無いかと思って検索してみたら
Class::HPLOOという便利な奴があるみたいですが、
皆さんは何を使ってますか?

ちなみにここを参考にしました。
http://naoya.dyndns.org/~naoya/mt/archives/000870.html

94 :nobodyさん:2005/06/27(月) 15:05:43 ID:EleSXDWp.net
パッケージをつかわずにOOPてか
クロージャとハッシュと無名関数だけでOOPを実装。
インスタンス、カプセル化、継承、多態性が実装されてるからOOPだよね。

sub String_new{
my $value = shift;
my $self;
$self = {
set => sub{$value=$_[0]},
value => sub{$value},
};
}
sub String2_new{
my $base = String_new(@_);
my $self;
$self = {
%$base,
set => sub{my$str=$self->{value}();$base->{set}($_[0]);$str},
length => sub{length $self->{value}()},
}
}
$s1 = String_new('abcde');
$s2 = String2_new('1234567');
print $s1->{value}(),"\n";
print $s1->{set}('wxyz'),"\n";
print $s1->{value}(),"\n";
print $s2->{value}(),"\n";
print $s2->{set}('890'),"\n";
print $s2->{value}(),"\n";
print $s2->{length}(),"\n";

95 :nobodyさん:2005/06/29(水) 05:34:38 ID:???.net
perlで一番つかわれてるフレームワークってなに?

96 :山碕渉:2005/07/05(火) 00:52:32 ID:???.net
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山碕渉

97 :nobodyさん:2005/12/17(土) 00:54:36 ID:Nve1rpZB.net
もうperl5 oopは死んだのですか?

98 :nobodyさん:2005/12/17(土) 05:11:53 ID:L4AdeMAk.net
勝手に殺すな

99 :nobodyさん:2005/12/17(土) 15:31:32 ID:???.net
いやあ、このスレが死んでいたので・・・

100 :nobodyさん:2005/12/29(木) 17:34:47 ID:Nhlmh3Zf.net
getメソッドで受け取った値を、Parser.pmモジュールの_parse_query関数で受け
取って解析したあと、解析した値を他のモジュールから呼び出すにはどういう記述
をすれば良いですか?

101 :nobodyさん:2005/12/29(木) 17:35:40 ID:Nhlmh3Zf.net
ちなみに、Parser.pmはこんな感じです↓

package Common::Parser;

sub new {
my $class = shift;

my $self = {
query => undef
};

bless $self, $class;

if ($ENV{'CONTENT_LENGTH'} or $ENV{'QUERY_STRING'}) {
$self->{query} = $self->_parse_query;
}
}

102 :nobodyさん:2005/12/29(木) 17:36:58 ID:Nhlmh3Zf.net
sub _parse_query {
my $self = shift;

my ($data, $query);

if ($ENV{'REQUEST_METHOD'} eq 'POST') {
read(STDIN, $data, $ENV{'CONTENT_LENGTH'});
} else {
$data = $ENV{'QUERY_STRING'};
}

foreach (split(/&/, $data)) {
my ($name, $value) = split(/=/);

$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack('C', hex($1))/eg;

$query->{$name} = $value;
}
}

1;


103 :nobodyさん:2005/12/29(木) 18:21:13 ID:???.net
getter書く。

というかCGI.pm使えば?

104 :nobodyさん:2005/12/30(金) 09:29:38 ID:???.net
自分で parse すんなよw

105 :nobodyさん:2005/12/30(金) 13:18:26 ID:WC8C4E+l.net
お二人様の言う事が暗号みたいでいまいち理解できませんが、なんとか
頑張ってみたいと思います。
解答ありがとうございました!

106 :nobodyさん:2005/12/30(金) 13:58:41 ID:WC8C4E+l.net
なんどもすみません;;
>>101のように、コンストラクタの中に

if ($ENV{'CONTENT_LENGTH'} or $ENV{'QUERY_STRING'}) {
   $self->{query} = $self->_parse_query;
}

のように、本来のコンストラクタの仕事である関連付け以外の処理をさせても良いのですか?

107 :nobodyさん:2005/12/30(金) 18:10:38 ID:???.net
良いも悪いもねーよ

PerlでのOOの勉強目的でやってんならCPANモジュールの中身見て
どんなことをやってるか参考にしたらいいよ


108 :nobodyさん:2006/01/01(日) 16:23:29 ID:???.net
過疎ってるなぁ

109 :nobodyさん:2006/04/24(月) 03:56:56 ID:???.net
かそあげ

110 :nobodyさん:2006/05/07(日) 21:19:51 ID:???.net
保守

111 :nobodyさん:2006/05/21(日) 05:12:37 ID:???.net
実際のところ、Perlでのオブジェクト指向を学ぶには
書籍以外に何を見たらいいの?
自分はCGIのためにPerl始めたんだが
そこらで配布されてるCGIにオブジェクト指向が取り入れられてる例を見たことがない。

適材適所とは思うけど、小規模なスクリプトだからってオブジェクト指向イラネってことも
ないと思うんだけど・・・
身近で、興味が持てる例があれば理解の助けになると思うのに
それともフリー配布のCGIに教材的な面を望むのが無謀なのか。

112 :nobodyさん:2006/05/21(日) 07:06:33 ID:???.net
>111
まず最初に、その検索能力の無さをなんとかしろよ

113 :nobodyさん:2006/05/21(日) 08:38:29 ID:???.net
わかった

114 :nobodyさん:2006/05/21(日) 08:48:25 ID:???.net
またスレストか

115 :112:2006/05/21(日) 12:27:40 ID:???.net
>113,111
しょーがねーな
なんか反応が素直だからいくつかURL貼ってやるよ
ttp://serennz.cool.ne.jp/sblog/
ttp://apps.cside.com/
あとはここで好きなだけ探せ
ttp://search.cpan.org/

116 :nobodyさん:2006/05/21(日) 17:04:31 ID:???.net
>>115
ありがとう。がんばる。

117 :nobodyさん:2006/05/21(日) 17:10:48 ID:???.net
>>115
sb のサクーシャ?
なんか、汚い書き方多くて見る気がしないぽ。

118 :112:2006/05/21(日) 18:49:49 ID:???.net
>117
俺は
>そこらで配布されてるCGIにオブジェクト指向が取り入れられてる例
を紹介しただけ。
綺麗な書き方のはお前さんにまかせた。

119 :nobodyさん:2006/05/21(日) 18:58:38 ID:???.net
>>118
そんな無責任な態度でいいもんかね?


120 :nobodyさん:2006/05/21(日) 21:26:43 ID:???.net
許す

121 :nobodyさん:2006/08/09(水) 14:48:38 ID:???.net
>>115
># 2.00a [2004/11/17] generated ... oh, it's my birthday.
痛いコメントハケーン

122 :nobodyさん:2006/08/19(土) 14:23:39 ID:???.net
>121
作者の誕生日にはわざわざお知らせを出すようになってる
もっと痛いスクリプトも世の中にはあるぞ。
オブジェクト指向は取り入れられてないからこのスレには書かないが。

123 :nobodyさん:2006/08/20(日) 00:59:39 ID:???.net
> 作者の誕生日にはわざわざお知らせを出すようになってる
> もっと痛いスクリプトも世の中にはあるぞ。
> オブジェクト指向は取り入れられてないからこのスレには書かないが。

存在を知らせる必要すらなくね?

124 :nobodyさん:2006/08/20(日) 23:14:02 ID:???.net
>>122
それ和みスレで見たことある

125 :nobodyさん:2008/01/20(日) 12:39:36 ID:eQx+pRRH.net
久しぶりにageてみる。

126 :nobodyさん:2009/07/02(木) 00:20:51 ID:???.net
最近Perlのオブジェクト指向勉強しだした
サブルーチンにリファレンスでぐちゃぐちゃだったコードがすっきりした
単純にうれしい

127 : 忍法帖【Lv=40,xxxPT】(4+0:8) 【28.1m】 電脳プリオン ◆3YKmpu7JR7Ic :2012/09/30(日) 17:38:58.16 ID:???.net ?PLT(12079)

  ∧_∧
  ( ・∀・)      | | ガガッ
 と    )      | |
   Y /ノ      .人
    / ) .人   <  >_∧∩
  _/し' <  >_∧∩`Д´)/
 (_フ彡 V`Д´)/   / ←>>63
            / ←>>59

128 :nobodyさん:2013/08/15(木) NY:AN:NY.AN ID:???.net
$obj = $class->new(@_);

129 :nobodyさん:2014/12/22(月) 23:34:55.20 ID:t4yXGVWq.net
ぬるぽ

130 :nobodyさん:2017/12/30(土) 12:49:56.68 ID:YhlYw6jg.net
誰でも簡単にネットで稼げる方法など
参考までに、
⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。

グーグル検索⇒『半藤のブブイウイウレレ』

2X8MM8J6F5

131 :nobodyさん:2022/02/22(火) 12:28:09.04 ID:6fpbTpY6.net
北京五輪が終わって ウクライナの状況の緊迫化が一段と増してきた

36 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :

read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★