Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Primer sa modulom ne radi

[es] :: Perl :: Primer sa modulom ne radi

[ Pregleda: 3597 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

karas

Član broj: 5574
Poruke: 482
*.adsl.sezampro.yu.



+1 Profil

icon Primer sa modulom ne radi20.09.2005. u 09:23 - pre 226 meseci
Primer iz knjige koji pokazuje upotrebu promenljivih prosledjenih modulu ne radi. Naime, u Cocoa.pm imam

Code:

#! /usr/bin/perl

package Cocoa;

sub new
{
  my $type = shift;
  my %parm = @_;
  my $this = {};
  $this->{'Name'} = $parm{'Name'};
  $this->{'x'} = $parm{'x'};
  $this->{'y'} = $parm{'y'};
  bless $this, $type;  
}

1;


a u test.pl imam

Code:

#!/usr/bin/perl

push (@INC,'pwd');
use Cocoa;
$mug = Cocoa::new('Name'=>'top', 'x'=>10, 'y'=>20);
print "Name=$mug->{'Name'}\n";
print "x=$mug->{'x'}\n";
print "y=$mug->{'y'}\n";


Medjutim, ne ispisuje vrednosti promenljivih Name, x i y, kao da nisu ni definisane. U chemu je problem?


Sveti Avgustin: "Dobar hrišćanin treba da se kloni matematičara i svih onih koji daju lažna proročanstva. Postoji opasnost da su matematičari već sklopili pakt sa Đavolom, da pomrače čovekov um i da ga okuju okovima pakla."
 
Odgovor na temu

alex
Aleksandar Radulovic
Senior Software Engineer, Spotify
Stockholm, Sweden

Moderator
Član broj: 71
Poruke: 2194
*.magnet.ie.

Jabber: alex@a13x.info
ICQ: -1
Sajt: www.a13x.info


+1 Profil

icon Re: Primer sa modulom ne radi20.09.2005. u 12:07 - pre 226 meseci
Prvo sto sam uocio je problem u dodavanju tekuceg direktorijuma u @INC - koristi tzv. backticks a ne ticks, jer se u tvom primeru umesto izvrsavanja komande pwd i dodavanja tekuceg direktorijuma u @INC tebi dodaje string pwd.


Primer pravilne upotrebe:
Code:

push (@INC,`pwd`);


[Ovu poruku je menjao alex dana 20.09.2005. u 13:13 GMT+1]
Alex: My favorite site is http://localhost/
R.J. Oppenheimer: "I am become death, destroyer of worlds" (1945 AD)
tweet.13x ||
linkedin.13x
 
Odgovor na temu

karas

Član broj: 5574
Poruke: 482
*.routotelecom.com.



+1 Profil

icon Re: Primer sa modulom ne radi21.09.2005. u 08:43 - pre 226 meseci
I dalje necce, i mislim da to nema veze sa navodnicima.
Ne razumem shta se deshava sa this, kao da gubim njegovu vrednost po izlasku iz konstruktora. Naime, ako u Person.pm imam

Code:

#! /usr/bin/perl

package Person;
require Exporter;
@ISA = qw(Exporter);
@EXPORT = qw(myprint);

sub new
{
  my $type = shift;
  my $this = {};
  $this->{'Name'} = $_[0];
  $this->{'Surname'} = $_[1];
  bless $this, $type;

  print ("Name = ", $this->{'Name'}, "\n"); # (1)
  print ("Surname = ", $this->{'Surname'}, "\n\n");# (2)

  return $this;
}

sub myprint
{
}

1;


a u test.pl

Code:

#!/usr/bin/perl

push (@INC, 'pwd');
use Person;

$p1 = new Person("Pera", "Peric");
$p2 = new Person("Laza", "Lazic");
$p1->myprint;
$p2->myprint;


onda je sve u redu. Ali ako linije (1) i (2) prebacim iz new u myprint onda se ne ispisuju vrednosti za Peru i Lazu.
Zashto?

[Ovu poruku je menjao karas dana 21.09.2005. u 10:45 GMT+1]

[Ovu poruku je menjao karas dana 21.09.2005. u 10:57 GMT+1]
Sveti Avgustin: "Dobar hrišćanin treba da se kloni matematičara i svih onih koji daju lažna proročanstva. Postoji opasnost da su matematičari već sklopili pakt sa Đavolom, da pomrače čovekov um i da ga okuju okovima pakla."
 
Odgovor na temu

bzero
dev null
europe

Član broj: 5907
Poruke: 371
*.pat-pool.nsad.sbb.co.yu.

Jabber: bzero@elitesecurity.org
Sajt: www.google.com/search?q=b..


Profil

icon Re: Primer sa modulom ne radi21.09.2005. u 09:46 - pre 226 meseci
Problem je ovde:

Code:

$mug = Cocoa::new('Name'=>'top', 'x'=>10, 'y'=>20);


ne moze tako da se napravi novi objekat, nego treba da bude:

Code:

$mug = new Cocoa('Name'=>'top', 'x'=>10, 'y'=>20);


ili

Code:

$mug = Cocoa->new('Name'=>'top', 'x'=>10, 'y'=>20);


Inace uvek stavljaj -w (#!/usr/bin/perl -w), bice ti mnogo lakse da otkrijes greske.
Never trust an operating system you don't have sources for.
 
Odgovor na temu

bzero
dev null
europe

Član broj: 5907
Poruke: 371
*.pat-pool.nsad.sbb.co.yu.

Jabber: bzero@elitesecurity.org
Sajt: www.google.com/search?q=b..


Profil

icon Re: Primer sa modulom ne radi21.09.2005. u 09:57 - pre 226 meseci
Ako u funkciju myprint stavis:

Code:

sub myprint
{
 print ("Name = ", $this->{'Name'}, "\n"); # (1)
  print ("Surname = ", $this->{'Surname'}, "\n\n");# (2)
}


onda naravno nece raditi. Treba da bude ovako:

Code:

sub myprint {
    my $class = shift;
    
    print ("Name = ", $class->{'Name'}, "\n"); # (1)
    print ("Surname = ", $class->{'Surname'}, "\n\n");# (2)
}


Obavezno procitaj Tom's object-oriented tutorial for perl:
http://www.sunsite.ualberta.ca...erl-5.005_03/pod/perltoot.html

ili ako si na unix-u:
man perltoot
Never trust an operating system you don't have sources for.
 
Odgovor na temu

karas

Član broj: 5574
Poruke: 482
*.routotelecom.com.



+1 Profil

icon Re: Primer sa modulom ne radi21.09.2005. u 09:59 - pre 226 meseci
Hvala, sada sve radi. Moram brzo da nauchim Perl, koristim Teach yourself Perl in 21 days, ali poglavlje o modulima nije najbolje objashnjeno. Prvi primer je bash iz knjige.
Hvala josh jednom.



[Ovu poruku je menjao karas dana 21.09.2005. u 11:06 GMT+1]
Sveti Avgustin: "Dobar hrišćanin treba da se kloni matematičara i svih onih koji daju lažna proročanstva. Postoji opasnost da su matematičari već sklopili pakt sa Đavolom, da pomrače čovekov um i da ga okuju okovima pakla."
 
Odgovor na temu

techcode
Aleksandar Petrovic
Amsterdam

Član broj: 55455
Poruke: 188
*.vdial.verat.net.



+3 Profil

icon Re: Primer sa modulom ne radi23.09.2005. u 00:32 - pre 226 meseci
Trebalo bi da ima TOOT (man perltoot ili potrazi HTML verziju) u Perl distribuciji koji to objasnjava veoma lepo ...
 
Odgovor na temu

karas

Član broj: 5574
Poruke: 482
*.adsl.sezampro.yu.



+1 Profil

icon Re: Primer sa modulom ne radi23.09.2005. u 07:57 - pre 226 meseci
Ima tutorijal, ali rekoh kad vecc imam knjigu da radim po njoj, trebalo bi da bude brzze. Bicce da autor nije proveravao svako parche koda.
Sveti Avgustin: "Dobar hrišćanin treba da se kloni matematičara i svih onih koji daju lažna proročanstva. Postoji opasnost da su matematičari već sklopili pakt sa Đavolom, da pomrače čovekov um i da ga okuju okovima pakla."
 
Odgovor na temu

techcode
Aleksandar Petrovic
Amsterdam

Član broj: 55455
Poruke: 188
*.vdial.verat.net.



+3 Profil

icon Re: Primer sa modulom ne radi23.09.2005. u 10:32 - pre 226 meseci
A to sto ja nisam video da je sve to pomenuto u jenom od predhodnih postova je vec neka druga stvar ...

U svakom slucaju, TOOT je strava. A imas i par knjiga na tu temu. Ja sam ih gomilu pronasao na Shareaza (gnutela2) mrezi. Pojavile su se i ove nove (izdanje 2005) Perl Testing - Developers handbook, Learning Perl 4th edition, Advanced Perl programming 2nd edition ...itd.

Jedina knjiga koja ima kod nas da se kupi u izdanju Kompjuter Biblioteke (kosta ~ 432 din sada na popustu) je Perl - The complete reference. I nije bas nesto :(
 
Odgovor na temu

karas

Član broj: 5574
Poruke: 482
*.routotelecom.com.



+1 Profil

icon Re: Primer sa modulom ne radi23.09.2005. u 15:43 - pre 226 meseci
Ne nameravam da se previshe bavim Perlom, stari kod treba menjati, a nadam se da ccu ga uskoro prebaciti u C++.
Sveti Avgustin: "Dobar hrišćanin treba da se kloni matematičara i svih onih koji daju lažna proročanstva. Postoji opasnost da su matematičari već sklopili pakt sa Đavolom, da pomrače čovekov um i da ga okuju okovima pakla."
 
Odgovor na temu

techcode
Aleksandar Petrovic
Amsterdam

Član broj: 55455
Poruke: 188
213.244.197.*



+3 Profil

icon Re: Primer sa modulom ne radi23.09.2005. u 18:41 - pre 226 meseci
A sta ta aplikacija uopste radi?

Generalno - da bi se kod iz Perl-a "prebacio" u C/C++ treba puno vremena. Tacnije obicno ti je potrebno mnogo vise koda. I to ne racunajuci slucajeve kada se koriste CPAN moduli/klase - a ne postoji nista slicno za C/C++.

Moja preporuka (kao neko ko je radio i sa C/C++ izmedju ostalih) je da se jos malo pozabavis Perl-om. Prosto je neverovatno koliko se u njemu brzo radi i uopste kakve je sve stvari moguce uraditi - o kojima kada C++ koristis mozes samo da sanjas.

Naravno - ne kazem da je Perl uvek bolji izbor od Cpp-a - narocito ako su potrebne neke lowlevel stvari ili je brzina jednostavno presudna (number crunching). Ali posto ti vec imas Perl kod ... to verovatno nije tako.

Evo i preporuke :

Knjige (ima ih online :) :

O'Reilly - Perl Best Practices [2005]
Addison Wesley - Effective Perl Programming, Writing Better Programs with Perl [1997]
Addison Wesley - Perl Medic, Transforming Legacy Code [2004]

Free as in beer :) :

Picking up perl (PDF) - http://ebb.org/PickingUpPerl/
Learning Perl the Hard Way (PDF) - http://greenteapress.com/perl/
Impatient Perl (PDF) - http://www.greglondon.com
http://www.perltraining.com.au/notes.html na kojem se mogu pronaci :
- Introduction To Perl (pdf)
- Intermediate Perl (pdf)
- Object Oriented Perl (pdf)
- Database Programming with Perl (pdf)
- Perl Security (pdf)

PS. Sve ovo bi bilo dobro dodati i u TOP temu ...
 
Odgovor na temu

karas

Član broj: 5574
Poruke: 482
*.adsl.sezampro.yu.



+1 Profil

icon Re: Primer sa modulom ne radi26.09.2005. u 08:09 - pre 226 meseci
Hvala na savetima, ali ne pitam se ja, moje je da to uradim. Poshto cce se sistem shiriti, bolje je odmah sve prebaciti u C++.
Sveti Avgustin: "Dobar hrišćanin treba da se kloni matematičara i svih onih koji daju lažna proročanstva. Postoji opasnost da su matematičari već sklopili pakt sa Đavolom, da pomrače čovekov um i da ga okuju okovima pakla."
 
Odgovor na temu

[es] :: Perl :: Primer sa modulom ne radi

[ Pregleda: 3597 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.