Moose: Porovnání verzí
Instalace |
01 |
||
Řádek 28: | Řádek 28: | ||
</source> |
</source> |
||
můžeme (pro legraci) používat i české názvy proměnných i s diakritikou (pro vážné programování bych to ale asi nedoporučoval). |
můžeme (pro legraci) používat i české názvy proměnných i s diakritikou (pro vážné programování bych to ale asi nedoporučoval). |
||
Z nějakých důvodů to ale s Diakritikou nefunguje v případě, že tak nazveme třídu; příkaz |
|||
<source lang='perl'> |
<source lang='perl'> |
||
package Kočka |
|||
</source> |
</source> |
||
vyvolá chybu: |
|||
Kočka is not a module name at /usr/lib/perl5/Class/MOP/Package.pm line 207. |
|||
BEGIN failed--compilation aborted at ./07.01Kocka.pl line 9. |
|||
=== 01 === |
|||
⚫ | |||
Tak tedy, vytvoříme si ''třídu'' koček, které umí mňoukat, a dvě její ''instance'', Lízu a Mňauka, které pak z mňoukání vyzkoušíme: |
|||
⚫ | |||
#! /usr/bin/perl |
|||
Modern::Perl; |
|||
use utf8; |
|||
binmode STDOUT, ':utf8'; |
|||
package Kocka |
|||
{ |
|||
use Moose; |
|||
sub mňau |
|||
{ |
|||
my $self = shift; |
|||
say 'Mňau!'; |
|||
} |
|||
} |
|||
my $Líza = Kocka->new(); |
|||
my $Mňouk = Kocka->new(); |
|||
$Líza->mňau(); |
|||
$Mňouk->mňau(); |
|||
</source> |
</source> |
||
* |
|||
<source lang='perl'> |
<source lang='perl'> |
Verze z 24. 10. 2012, 09:18
Moose je objektový systém, vytvořený jako knihovna v Perlu. V podstatě vytváří určitý způsob myšlení (školu), jak zacházet s objekty v Perlu (s objekty se zde jinak dá zacházet celkem volně).
Instalace
Ubuntu
Při výběru balíku libmoose-perl budou nainstalovány i následující balíky:
- libb-hooks-endofscope-perl (verze 0.08-1) bude nainstalován
- libclass-load-xs-perl (verze 0.03-1) bude nainstalován
- libdevel-globaldestruction-perl (verze 0.04-2) bude nainstalován
- libdevel-partialdump-perl (verze 0.15-1) bude nainstalován
- libeval-closure-perl (verze 0.06-1) bude nainstalován
- libmoose-perl (verze 2.0401-1) bude nainstalován
- libnamespace-clean-perl (verze 0.22-1) bude nainstalován
- libsub-exporter-perl (verze 0.982-1) bude nainstalován
- libsub-identify-perl (verze 0.04-1build2) bude nainstalován
- libtask-weaken-perl (verze 1.03-1) bude nainstalován
- libvariable-magic-perl (verze 0.47-1build1) bude nainstalován
Tutoriál
Sytému Moose je věnována kapitola Objects v knize Modern Perl#07. Objekty. Touto kapitolou je inspirován tento tutoriál. Poznamenejme, že direktivami
use utf8;
binmode STDOUT, ':utf8';
můžeme (pro legraci) používat i české názvy proměnných i s diakritikou (pro vážné programování bych to ale asi nedoporučoval).
Z nějakých důvodů to ale s Diakritikou nefunguje v případě, že tak nazveme třídu; příkaz
package Kočka
vyvolá chybu:
Kočka is not a module name at /usr/lib/perl5/Class/MOP/Package.pm line 207. BEGIN failed--compilation aborted at ./07.01Kocka.pl line 9.
01
Tak tedy, vytvoříme si třídu koček, které umí mňoukat, a dvě její instance, Lízu a Mňauka, které pak z mňoukání vyzkoušíme:
#! /usr/bin/perl
Modern::Perl;
use utf8;
binmode STDOUT, ':utf8';
package Kocka
{
use Moose;
sub mňau
{
my $self = shift;
say 'Mňau!';
}
}
my $Líza = Kocka->new();
my $Mňouk = Kocka->new();
$Líza->mňau();
$Mňouk->mňau();