2025-03-05 12:33:13 +01:00

57 lines
1.4 KiB
Perl

# Vi prøver oss på nytt, og lager en fil som vi kaller Hello.pm
package Hello2; # Nesten som før...
sub new { # Vanlig navn på en konstruktor er "new" - ingen tvang!
my $package = shift; # første argument er alltid en referanse
# til
my $navn = shift;
my $kjonn = shift;
die "new() skal ha 2 argumenter" if @_;
die "$navn sitt kjønn må være 'M' eller 'K'! (ikke '$kjonn')\n"
unless $kjonn =~ m/^[MK]$/;
my $person = {
navn => $navn,
kjonn => $kjonn,
_ant_hils => 0 };
bless( $person, $package ); # Her knytter vi $person til
# $package, slik at vi får
# effekten av en klasse.
return $person;
}
sub hils {
my $self = shift;
my $hva = $self->{kjonn} eq "M" ? "han" : "hun";
my $hvem = $self->{navn};
$self->{_ant_hils}++; # hvor mange ganger "jeg" er blitt hilst på?
return "Nei, se! Der har vi jo $hva $hvem!\n";
}
sub vis_ant_hilsninger {
my $self = shift;
return $self->{_ant_hils};
}
sub vis_navn {
my $self = shift;
return $self->{navn};
}
sub vis_kjonn {
my $self = shift;
return $self->{kjonn};
}
1; # Så avslutter vi med en sann verdi.