Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]12226[/thread]

Anfänger OO-Frage (Seite 2)

Tags: Ähnliche Threads

Leser: 1


<< |< 1 2 >| >> 18 Einträge, 2 Seiten
LanX-
 2008-07-23 18:56
#112506 #112506
User since
2008-07-15
1000 Artikel
BenutzerIn

user image
mal sauber und selbsterklärend länglich hingeschrieben

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package http_link;
sub new {
        my $classname = shift;
        my $hash_ref = {};            # neues Hash anlegen
        $hash_ref->{id} = shift;   # init
        $hash_ref->{link} = shift;
        
        bless $hash_ref,$classname; # Objekt mit Klasse verknüpfen
        return $hash_ref;
}
        
sub get_id{
        my $self = shift;
        return  $self->{id} ;
}


PS: ungetestet!
Gast Gast
 2008-07-23 19:00
#112509 #112509
Gast+2008-07-23 15:05:19--
Code (perl): (dl )
1
2
3
4
 my $Referenz = bless {
      id => 61,
   }, $Objekt;
   return Referenz;# $self wäre üblicher. von da her tippfehler.



mfg Dirk


vielen Dank, jetzt funktionierts
Gast Gast
 2008-07-23 19:22
#112514 #112514
ok, nun hab ich nur noch ein problem, versprochen ;-)
Code (perl): (dl )
1
2
3
4
5
6
sub sethost{
        my $Objekt = shift;
        my $hash_ref = {}; 
        $hash_ref->{host} = shift;
        bless $hash_ref,$Objekt;
}

gibt ein
Code: (dl )
Attempt to bless into a reference at test.pl line 5.
LanX-
 2008-07-23 19:32
#112518 #112518
User since
2008-07-15
1000 Artikel
BenutzerIn

user image
new() ist eine Klassenmethode und unterscheidet sich fundamental von den anderen Instanzmethoden.

klasse->new() übergibt als 1. Argument den Namen der Objektklasse
$obj->methode() übergibt als 1. Argument die Referenz zur Objektinstanz
LanX-
 2008-07-23 19:35
#112520 #112520
User since
2008-07-15
1000 Artikel
BenutzerIn

user image
ich vermute du willst folgendes

Code (perl): (dl )
1
2
3
4
sub set_host{
        my $self = shift;
        $self->{host} = shift;
}
Gast Gast
 2008-07-23 21:37
#112535 #112535
LanX-+2008-07-23 17:35:08--
ich vermute du willst folgendes

Code (perl): (dl )
1
2
3
4
sub set_host{
        my $self = shift;
        $self->{host} = shift;
}



genau :-) vielen Dank
betterworld
 2008-07-23 22:00
#112538 #112538
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
Das kann man uebrigens auch mit CPAN:Class::Accessor machen :)
LanX-
 2008-07-24 00:51
#112552 #112552
User since
2008-07-15
1000 Artikel
BenutzerIn

user image
betterworld+2008-07-23 20:00:06--
Das kann man uebrigens auch mit CPAN:Class::Accessor machen :)

warum nicht gleich CPAN:Moose ?
<< |< 1 2 >| >> 18 Einträge, 2 Seiten



View all threads created 2008-07-23 14:13.