Christian Kruse: Referenzen -- wozu ?

Beitrag lesen

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