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

■ このスレッドは過去ログ倉庫に格納されています

オブジェクト指向perl

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

2 : ◆unKo/nko :02/05/29 04:57 ID:???
今だ!2番ゲットォォォォ!!
 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄
     ∧∧ ∧∧ ドドドドドド・・・・
    (゚Д゚ ,,) (゚Д゚ ,,)  ∧∧      (´´
    ⊂_⊂V⊂ ⊂ )⊂(゚Д゚ ,,)_/(´´
     Y /⊃ | .L⊃∧∧∪ _⊃(´⌒(´
   ドカ ∪∧∧J⊂(x _x⊂ノ(´⌒(´  (´´
 ドカ  ⊂(゚Д゚⊂⌒`つ≡≡≡(´⌒;;;≡≡≡
    ズザ・・・


3 :nobodyさん:02/05/29 05:54 ID:???
>>1
他のオブジェクト指向言語の利用経験はあるの?

Perlのオブジェクト指向機能って変則的だから、オブジェクト指向の概
念がしっかりわかってないとツラいよ。もし経験が無いなら遠回りなよ
うでも一旦Ruby等の言語を使ってみる事をすすめる。

4 :nobodyさん:02/05/29 17:21 ID:???
『オブジェクト指向Perlマスターコース』。
あと自分の作ろうとしてるモジュールが既にないか調べとけ。

1に質問書く単発スレうざい。

5 ::02/05/29 20:58 ID:???
>>3
オブジェクト指向は初めてです。
はじめがperlなんで・・・
それにしても一旦rubyをやるとなると相当時間かかりますね。
それほど大変なんだろうな。ありがとうございます。

>>4
それ今日たまたま見た。6500円はちと高い。
作ろうとしているものが既にあるかどうか調べといてやるよ。

6 :nobodyさん:02/05/29 21:02 ID:???
>>4
おまえさ、もっと普通に会話できんの?
アドバイスはありがたいんだけど、見てるとむかつくんだよ。
ガチンコじゃね〜んだから、もっと普通にしろや。

7 :4:02/05/29 21:25 ID:???
1に質問書く単発スレうざい。
1に質問書く単発スレうざい。
1に質問書く単発スレうざい。

3回書けば判っていただけますか?
それと「調べといてやるよ」なんてバカみたいなことは一々宣言しないで結構です。
『Perlモジュール活用ガイド』はモジュール作るのにはあまり役に立たないが、
Chapter10のデバッグ関連の所は一通り見た方がいい。

8 :nobodyさん:02/05/29 22:18 ID:???
1はオブジェクト指向したいわけじゃなくて、単にモジュールが作りたいだけか?
それなら手持ちの入門書で「モジュールを作る」あたりを読めば簡単。

9 :nobodyさん:02/05/30 01:26 ID:axCq6x30
もういいから Ruby 使いなさい。

10 :1:02/05/30 02:00 ID:???
>>8
どちらもです。

11 :nobodyさん:02/05/30 07:17 ID:???
>>10
まずはオブジェクト指向してないモジュールを書くとこから始めれ。
$obj->method()形式で呼び出せないとカッコ悪いと思ってるかもしれな
いけど、全然そんな事ないから気にするな。

あと、オブジェクト指向ってのは見通しのよいプログラムをデザインす
るための大量の思想・概念・道具類・センス等の寄せ集めだから、文法
憶えてハイ修得ってわけにはいかない。生涯かけて学んでゆく規模だか
ら、数種類の言語を学ぶぐらいは当然。で、Perlでオブジェクト指向を
学ぶのは遠回りだ。時間浪費する事になるよ。

12 :nobodyさん:02/05/30 16:09 ID:???
SocketモジュールとIO::Socketモジュールの違いみたいなもんか。

13 :nobodyさん:02/05/31 17:01 ID:aUKFTjWZ
>>11
オブジェクト指向自体はそんなことめざしてません。


14 :1:02/06/01 01:25 ID:???
>>11
とりあえずオブジェクト指向していないモジュール(つうか
自作のサブルーチンを集めたようなもの)はいろいろ作ったり
してます。いろいろ作っていくうちCGI_Lite等のようなものを
作りたくなった、というのもオブジェクト指向を勉強してみた
いと思った要因でもあります。
まずは「オブジェクト指向」というものはどんなものか?
ということから理解しないとだめなんすね?それにはrubyをまず
してみろと・・・長い道のりになりそうだけどがんばってみます。
アドバイスありがとうございます。

15 : :02/06/01 19:57 ID:???
4は普通だと思うが・・・
ずいぶん、甘い板になったな。
初心者スレでCGIに関する質問もずいぶん多くなったし

16 :nobodyさん:02/06/03 00:17 ID:???
>15 そだねー。
おれなんか初心者スレに質問書いた時、回答が「基礎からやりなおせ」だけだった時があったからね。
答えるのがあたりまえとは思ってないけど、答えるんなら、も少し情報くれてもいいのにとは思った。

17 :use IO::Socket;:02/07/01 12:34 ID:???
駄スレ再利用計画
ここをオブジェクト指向Perl講座にしてみよう

18 :use IO::Socket:02/07/01 12:39 ID:???
クラス作るまで

1.クラスの生成
{ package ClassA;
}

2.コンストラクタ
メソッド名はなんでもいいが一般的にはnew
{ package ClassA;
sub new {}
}

3.コンストラクタ実装
ClassAのオブジェクトを返すには、自分のアドレスとデータメンバの入った
無名ハッシュをblessする

{ package ClassA;
sub new {
my $class = shift;
my $hash = {
data1 => shift,
data2 => shift,
data3 => shift
};
bless( %hash, $class );
}
}

4.あとは適当にメソッドなど追加する。以上

19 :use IO::Socket:02/07/01 12:48 ID:???
オブジェクト

1.オブジェクトの生成
$obj1 = ClassA -> new( $data1, $data2, $data3 );

「ClassA ->」は第一引数にClassAへの参照が入る。
よって@_は( ClassA, $data1, $data2, $data3 )となる。

2.オブジェクトの使用
1.で$objにClassAのオブジェクトが入っているのでこれを利用する。
$retvalue = $obj -> Method1();
もし、Method1がClassBのオブジェクトを返し、Method2がClassBに属する(以下略)なら
$retvalue = $obj -> Method1() -> Method2() -> Method3() ...;
と続けて出来る。これぞオブジェクト指向。


20 :nobodyさん:02/07/01 14:52 ID:???
無意味で分りにくい解説禁止。

21 :nobodyさん:02/07/03 10:50 ID:???
ハァ?

22 :ぺるにゃん:02/07/18 02:36 ID:???
まず Perl 以外のオブジェクト指向言語に触れてから、
Perl に戻ってきた方が理解が早いと思うにゃ。
だまされたと思って、Java とかやってみて。

23 :nobodyさん:02/07/18 09:32 ID:???
形無し言語でクラスとか多様とか言われてもぴんとこない・・・。
全部元クラスじゃんみたいな。

24 :nobodyさん:02/07/18 15:03 ID:???
>>17-19
こんな抽象的な説明でオブジェクト指向を理解できる初心者がいたら凄いな・・・


25 :nobodyさん:02/07/18 20:22 ID:???
>>23
キミのもっている「形無し言語」の定義と、
世間一般の「形無し言語」の定義は違うぞ。

26 :初期不良:02/07/18 22:48 ID:5Jy0ruag
おりゃPerlモジュール活用ガイドを読んでモジュール作ったけどね、
継承のためにこんなコンストラクタ作らなきゃならんのは
どうかと思う罠。Perl6 だとどうなるのか知らんけど。
sub new{
my $param = shift;
my $class = ref($param) || $param;
my $obj = {};
bless($obj, $class);
return $obj;
}

27 :nobodyさん:02/07/19 02:00 ID:???
>>26
$obj->new(...);
ってのを許すのはあまり好ましくないと言ってみる

28 :初期不良:02/07/19 03:49 ID:???
>>27
継承でそれが必要なんだとさ

29 :初期不良:02/07/19 03:52 ID:???
>>27
しかもこれの事をクローニングとか逝ってたしw
値をきちんとコピーする clone メソッドは別に作ったよ。
ろくに使わんけどなー

30 :nobodyさん:02/07/19 08:51 ID:???
>>28
継承で必要なのは第一引数でblessすることなんだけど…。
その本がダメなだけじゃないの?

31 :初期不良:02/07/19 13:22 ID:???
>>30
すまん俺の勘違いだったみたい。
継承のために必要というわけじゃないらしい。
てっきりスーパークラスのコンストラクタを呼び出すときに
そうなってしまうというのかと思ってた。

サブクラスでコンストラクタをオーバーライドしなかった場合
スーパークラスのコンストラクタが呼ばれなきゃならんけど
下の文法だとそれが行われないって問題だけみたい。
Subclass->new(); #OK
new Subclass; #NG

32 :nobodyさん:02/07/19 15:22 ID:???
>>31
デマ流すなよ。。。

#!perl
my @obj;
push @obj, Super->new();
push @obj, Subclass->new();
push @obj, new Subclass;
for my $obj (@obj) {
   $obj->compute();
}
exit;

package Super;
sub new {
   my $class = shift;
   my $self = bless {
      message => 'Hello World!'
   }, $class;
   $self->init();
   return $self;
}

sub init {
   my $self = shift;
   print $self->{message}, "\n";
}

sub compute {
   my $self = shift;
   print scalar(localtime), "\n";
}


package Subclass;
use base 'Super';
sub compute {
   my $self = shift;
   print scalar(gmtime), "\n";
}

33 :初期不良:02/07/19 19:14 ID:???
>>32
スマソ
確認しなかった俺が悪かった。
perl5004 とか収録している本だからかな?
new Subclass の構文は失敗する、と
258 ページにはっきりと書いてある。

34 : ◆JAPH9PWA :02/07/19 21:21 ID:???
>>33
Perl5.003をベースにしたプログラミングPerl改正版でも、
new Subclassに問題があるようには読めないなぁ。
その本の作者、またはキミが激しく勘違いしていることは間違いないね。

35 :初期不良:02/07/19 23:00 ID:???
>>34
33 に書き忘れたけど完全に同意してるんで許して

36 :nobodyさん:02/11/21 12:09 ID:???
オブジェクト指向言語を勉強したいんですけど
どこか初心者用の解説サイトみたいなとこしらないっすか


37 :nobodyさん:02/11/21 12:11 ID:???
ってゆうか言葉とかも全然っす
メソッドって?クラスって?てな感じです

ちなみにC言語とかはそこそこ使えます


38 :nobodyさん:02/11/21 12:33 ID:???
>>37
んじゃ勉強すれ
JAVAの本なんかにみんないろんな方法でかいてあるよ、電気スタンドとか
コーヒーに例えて(わら
それがまたややこしいんだってことに気付かない著者ってステキだがな。

39 :nobodyさん:02/11/21 12:35 ID:???
>>38
その為のサイト教えてくれー


40 :nobodyさん:02/11/21 12:45 ID:???
JAVEは、オブジェクト=インスタンスだよね
Perlでも同じ?


41 :nobodyさん:02/11/21 15:14 ID:???
>>39
Perlオブジェクト指向
ttp://www.pure.ne.jp/~learner/program/Perl_oo.html
ざっと見てみたけど、いいサイトだと思う。
>>40
Perlでは、オブジェクト=インスタンス=ブレスされたハッシュ
Perlでは、クラス=モジュール+OO構文

42 :bloom:02/11/21 16:41 ID:kapC4rRR

http://www.agemasukudasai.com/bloom/

43 :nobodyさん:02/11/21 18:05 ID:???
>>41
ありがとう

44 :nobodyさん:02/11/21 22:57 ID:CidwFuxc
#それぞれ一回ずつhogeと表示させたいのですが、
#どうすればいいか分かりません。教えてください。

my $b = new a();
print 'nothing';
$b->nothing();# hoge
print 'read';
$b->read();# hoge

package a;

sub new {
my $this = shift;
my $self = {};
bless $self, $this;
return $self;
}

sub read {
my $self = shift;
print "hoge\n";
}

AUTOLOAD {
my $self = shift;
$self->read();
}


45 :nobodyさん:02/11/22 04:39 ID:lEF6CpYA
助けてー

46 :nobodyさん:02/11/22 12:58 ID:syWpYZeW
メソッド呼ぶたびに二回表示されるのは何故なのですか?
お願いです、教えてくださいです。

47 :nobodyさん:02/11/22 14:00 ID:???
>>44
DESTROY がよばれてる?

48 :nobodyさん:02/11/23 11:22 ID:JSIskFPb
>>>>>>>>>47
直ったああああああああああありがとう!!


49 :nobodyさん:02/11/23 12:20 ID:iOXxXzff


50 :nobodyさん:02/11/24 06:31 ID:t0EFz7jF
get()って何する関数ですか?

出来れば詳しく解説してるサイトも教えてもらえるとうれしです。


51 :nobodyさん:02/11/24 06:38 ID:t0EFz7jF
>>50
自己解決しますた。すいません

52 :nobodyさん:02/11/24 13:56 ID:brwF5wjl
usestrickについて詳しいトコおせーてくだせー

53 :nobodyさん:02/11/24 15:33 ID:???
>>52
まさかとは思うが、もしかして、
use strict;
のことを言いたいのか?

54 :nobodyさん:02/11/25 00:03 ID:26KaLUcm
良いスレじゃないか。
ちなみに俺は↓でPerlのモジュールを学んだ。
http://www.melma.com/mag/85/m00014785/

55 :nobodyさん:02/11/29 01:20 ID:???
上のサイトでも紹介されてるけど
「オブジェクト指向Perlマスターコース」
は良い本だと思う。(個人的に一番)
だから誰か中古で買って。
会社の倉庫に眠ってた(新品同様)のを貰ったんだけど
以前個人的に買ったからダブってるんだよ。

56 :nobodyさん:02/11/29 11:18 ID:???
>>52
use strict;
はプラグマというものでコンパイラにヒントを与えるものだ。
慣習としてuseする際に大文字から始まるものはモジュールで
小文字から始まるものはプラグマらしい。



57 :山崎渉:03/01/15 13:43 ID:???
(^^)

15 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)