# # (C) 2000, Aidas Kasparas # # Pavyzdys klasių naudojimui - kompleksinių skaičių klasė # package complex; sub new { my @arg = @_; if ($#_ == 0){ # iškviesta ' new complex' return bless {}; } elsif ($#_ == 1) { # iškviesta 'new complex($kažkoks kompleksinis)' local $n = bless {}; $n->{Re} = $arg[1]->{Re}; $n->{Im} = $arg[1]->{Im}; return $n; } elsif ($#arg == 2) { # iškviesta 'new complex(Re, Im)' local $n = bless {}; $n->{Re} = $arg[1]; $n->{Im} = $arg[2]; return $n; } else { warn "Neteisingai kuriamas complex objektas"; } } sub Re { return $_[0]->{Re}; } sub Im { return $_[0]->{Im}; } sub add { my ($first, $second) = @_; my $res = new complex($first); $res->{Re} += $second->Re; $res->{Im} += $second->Im; return $res; } sub pr { my $n = @_[0]; my $str = ($n->Re).'+'.($n->Im).'i'; print $str; } sub DESTROY { print "Naikiname compelex skaičių\n"; } 1;