Tämä esimerkki esittelee olio-ohjelmointia ja Tk-kirjaston käyttöä Perl-kielellä. Ohjelma käyttää Liike-oliota, jolla on neljä attribuuttia, konstruktori ja kolme metodia. Olio sisältää get ja set-metodin. Ohjelmaa ohjataan graafisen käyttöliittymän avulla, mutta toiminnot tapahtuvat olioiden kautta. Esimerkkinä käytetään nopeuden ja kiihtyvyyden laskentaa.
#!/usr/bin/perl package Liike; use Tk; #Ohjelmassa käytetään Liike-nimistä oliota. sub new { my $class = shift; my $self = { #Luodaan attribuutit _matka => shift, _aika >= shift, _nopeus => shift, _kiihtyvyys => shift, }; bless $self,$class; return $self; } sub AsetaTiedot { my ($self, $matka,$aika) = @_; # Asetetaan käyttäjän antamat tiedot $self->{_matka} = $matka if defined ($matka); $self->{_aika} = $aika if defined($aika); return $self->{_matka},$self->{_aika}; } sub LaskeNopeus { my ($self) = @_; # Lasketaan nopeus ja palautetaan arvo $self->{_nopeus} = $self->{_matka}/$self->{_aika}; return $self->{_nopeus}; } sub LaskeKiihtyvyys { my ($self) = @_; # Lasketaan kiihtyvyys ja palautetaan arvo $self->{_nopeus} = $self->{_matka}/$self->{_aika}; $self->{_kiihtyvyys} = $self->{_nopeus}/$self->{_aika}; return $self->{_kiihtyvyys}; } # Luodaan graafinen käyttöliittymä my $main = MainWindow->new; $main->title("Liike"); # Luodaan kontrollit my $teksti = ""; my $nappain = $main->Button(-text=>"Nopeus",-command=>\&Nopeus)->pack(); my $nappain2 = $main->Button(-text=>"Kiihtyvyys",-command=>\&Kiihtyvyys)->pack(); my $tlaatikko = $main->Entry()->pack(); my $tlaatikko2 = $main->Entry()->pack(); my $lappu = $main->Label(-textvariable=>\$teksti)->pack(); $liike = new Liike(); # Ohjelmassa on kaksi toimintoa sub Nopeus(){ $liike->AsetaTiedot(int $tlaatikko->get(),int $tlaatikko2->get()); $teksti = $liike->LaskeNopeus(); } sub Kiihtyvyys(){ $liike->AsetaTiedot(int $tlaatikko->get(),int $tlaatikko2->get()); $teksti = $liike->LaskeKiihtyvyys(); } MainLoop;
Aihe on jo aika vanha, joten et voi enää vastata siihen.