Kysymys: Paketin vai objektin muuttuja?

Sami Poikonen sapapo at cc.jyu.fi
Fri Mar 5 08:31:09 CST 1999


Tuo olio-ohjelmointi Perlillä ei ole minulle kyllä vielä kaikin puolin
selvä ja pyytäisinkin näkemystä seuraavanlaisesta asiasta;

On olemassa perlin moduuli (paketti) jossa on n kappaletta muuttujia,
jotka vaikuttavat moduulissa määriteltävän objektiin sen luomisvaiheessa.
Itse oliossa on m kappaletta siihen suoranaisesti liittyviä muuttujia.

Kysymys kuuluukin, olisiko järkevää ottaa nuo n kappaletta muuttujia
osaksi tuota oliota, jolloin olisi mahdollista, että noiden muuttujien
arvot olisivat erilaiset eri objekteille. (Tarvetta tuollaiselle ei
ainakaan ensisilmäyksellä tuntuisi olevan, mutta jossain tapauksissa 
se saattaisi tulla kysymykseen).

Itse kuitenkin vierastan noiden ylimääräisten muuttujien ottamista 
olion ominaisuudeksi, sillä ne eivät ole suoranaisesti sen olion
ominaisuuksia, vaan sen ympäristön, johon tuo olio syntyy.

Vai miten tämänlaiset asiat oikein tehdään perlillä?


Siis:
a)

package foo1;

$m = 1900;

sub new {
	 my ($class)       = shift;
	 my ($param1)	   = shift;

         my $self 	   = {};
         $self->{'bar'}    = $m + $param1;
	 return $self;
}

sub SetM {
   $m = shift;
}


vai
b)

package foo2;

sub new {
         my ($class)       = shift;
         my ($param1)      = shift;
  
         my $self          = {};
	 $self->{'m'}      = 1900;
         $self->{'bar'}    = $self->{'m'} + $param1;
         return $self;
}

sub SetM { my $self = shift; $self->{'m'} = shift; } 

-- 
Sami Poikonen          (040) 5696 337 	        http://www.iki.fi/sp/ 
  sp at iki.fi 	       (014) 3100 201	     http://www.iki.fi/sp/bonsai/

    "Men can't use sex to get what they want. Sex *is* what we want!"
						-- Frasier




More information about the Helsinki-pm mailing list