Portál AbcLinuxu, 6. května 2025 07:23

Dotaz: Zaciatok v OOP

30.4.2009 11:11 shepi | skóre: 6
Zaciatok v OOP
Přečteno: 351×
Odpovědět | Admin

Ahojte

Snazim sa pochopit OOP v perl. Precital som rozne tutorials a pokusam sa vytvorit jednoduchy pm modul + script ktory sa nan odvolava. Tu je priklad modulu main.pm.

##########################

package main_pack;

sub new    {
my    ($my_class, $w, $h) = @_;
    $obj = {};
    bless $obj;
$obj->{width}=$w;
$obj->{height}=$h;
return $obj;
}

sub area{
my $obj = shift;
return    $obj->{width} * $obj->{height};
}

#####################

 a tu sa pokusam pouzit dany modul

#####################

use main;
$test = main_pack->new(5, 5);
print "skuska.: , $test->area(), ";

#####################

lenze to skonci chybou .:main.pm did not return a true value at Untitled3 line 2. Neviem za boha co je tam zle.
 

Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

30.4.2009 12:27 Jan Grmela | skóre: 45 | blog: Kilo šťávy z lachtana | Brno
Rozbalit Rozbalit vše Re: Zaciatok v OOP
Odpovědět | | Sbalit | Link | Blokovat | Admin

Každý modul v Perlu musí mít na konci pravdivou návratovou hodnotu. Proto je potřeba do každého modulu nakonec napsat 1; nějak takto:

package xyz;
.
.
.
1;
30.4.2009 13:01 shepi | skóre: 6
Rozbalit Rozbalit vše Re: Zaciatok v OOP
Odpovědět | | Sbalit | Link | Blokovat | Admin

dakujem ta jednotka pomohla ale nikde som to v ziadnom navode nevidel. este raz dik

Fuky avatar 30.4.2009 13:37 Fuky | skóre: 52 | blog: 4u
Rozbalit Rozbalit vše Re: Zaciatok v OOP

Simple Module Tutorial:

We need the 1; at the end because when a module loads Perl checks to see that the module returns a true value to ensure it loaded OK. You could put any true value at the end (see Code::Police) but 1 is the convention.

Jinak doporučuji Perl od Pavla Satrapy, rok vydání je sice 2000, ale autor má talent vysvětlit věci jasně, poutavě a srozumitelně.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.