Hallo,
ich bin grad am durchlesen, wie referenzen funktionieren.
Aber ich verstehe noch nicht, wozu Referenzen gut sind?
Referenzen sind gut, um abstrakte Datentypen darzustellen.
Beispielsweise waeren die Pascal-Records oder die C-Structs ein gutes
Beispiel dafuer, wozu man in Perl Referenzen braucht.
Wenn ich mache:
$var = 5;
$ref_var = $var;
Was bringt mir denn jetzt dieses Referenz?
Tja nun, ein denkbar bloedes Beispiel ;-) Das eignet sich wirklich nur
zur Syntax-Erklaerung.
Könnt ihr mir mal bespiele sagen, wann ich eine Referenz brauchen
könnte?
Sicher. Beispielsweise sind Objekte 'nur' Referenzen. Oder besser,
nehmen wir mal einen Abstrakten Datentyp, den man in C so definieren
wuerde (sorry, die Pascal-Syntax ist zu lang fuer mich her, an die
kann ich mich nicht mehr so genau erinnern):
typedef struct s_datatype {
struct {
char *username,*password;
int uid;
} user_infos;
struct {
char *vname,*nname,*street,*city,*country;
long plz;
int hausnummer;
} personal_infos;
} t_datatype;
t_datatype variable = {
{
"ckruse",
"passwort",
100
},
{
"Christian",
"Kruse",
"Ascheberger Strasse",
"Luedinghausen",
"Deuschland",
59348,
15
}
};
In Perl wuerde man das so schreiben:
$var = {
user_infos => {
username => "ckruse",
password => "passwort",
uid => 100
},
personal_infos => {
vname => "Christian",
nname => "Kruse",
street => "Ascheberger Str."
city => "Luedinghausen",
country => "Deuschland",
plz => 59348,
hausnummer => 15
}
};
Wie du sicher siehst, sind das ineinander verschachtelte
Hash-Referenzen. Auf diese Weise laesst sich nahezu jeder beliebige
abstrakte Datentyp nachbilden.
Gruesse,
CK