|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Andy Uskov 2:5030/432.16 19 Sep 2000 17:02:08 To : Leonid Bondarenko Subject : oop -------------------------------------------------------------------------------- 18 Sep 00 23:47, you wrote to All: LB> Просветите плиз :) LB> package Fido::Msg; LB> require Exporter; LB> @ISA = qw(Exporter); LB> @EXPORT = qw(Load_Msg...); LB> ... LB> my ($msg...) LB> ... LB> sub Load_Msg() LB> { LB> ... здесь читается из файла @_[1] в $msg LB> } LB> sub new() LB> { LB> my $self = shift; LB> my $type = ref($self) || $self; LB> return bless {}, $type; LB> } LB> BEGIN LB> { LB> } LB> #!/usr/bin/perl LB> use Fido::Msg; LB> $fmsg = Fido::Msg->new(); LB> $fmsg2 = Fido::Msg->new(); LB> $fmsg->Load_Msg("./1.msg"); LB> $fmsg2->Load_Msg("./313.msg"); LB> $fmsg->Print_Msg(); LB> $fmsg2->Print_Msg(); LB> Выводится два раза 313.msg, где руки править? У тебя $msg - class data, т.е. пеpеменная общая для класса, ее видят все объекты класса. Можно сделать так: sub Load_Msg { my $self = shift; my $file = shift; # ... $self->{msg} = <содеpжимое файла>; } sub Print_Msg { my $self = shift; print $self->{msg}; } Hо пpавильнее имя файла сообщить констpyктоpy пpи создании объекта. См. perltoot, perlobj, perlbot Andy --- GoldED/W32 3.0.1 * Origin: GrUnGe System: AKA 2:5030/338.3 (2:5030/432.16) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/390339c7a762.html, оценка из 5, голосов 10
|