Anzeige:
Ergebnis 1 bis 3 von 3

Thema: 3 D array derefferenzieren in perl

  1. #1
    Registrierter Benutzer
    Registriert seit
    29.07.2004
    Ort
    Berlin
    Beiträge
    40

    3 D array derefferenzieren in perl

    Hi,

    ich moechte in perl ein 3D array an eine funktion uebergeben, und dann dort auf die elemente zugreifen, moeglichst in der Form $array[$x][$y][$z].
    Dazu uebergebe ich eine referenz an die funktion:
    function \@array;
    wenn ich dann aber in der funktion dereferenziere
    @new_array=@$ref;
    kann ich maximal auf einen index zugreifen, also
    $new_array[$x];
    und nicht
    $new_array[$x][$y][$z]
    weil dann meckert der interpreter ueber meine syntax bei "]["

    wie kann ich auf die 3D Struktur zugreifen in meiner funktion?

    Gruss
    newton

  2. #2
    Registrierter Benutzer
    Registriert seit
    19.08.2004
    Beiträge
    404
    Also derefenzieren von Arrayreferenzen machst Du mit
    Code:
    @Array = @{$ArrayRef};
    Aber eigentlich kannst Du Dir den Schritt sparen... Du kannst ja auch mit Referenz arbeiten ($ArrayRef->[0][0][0]):



    PHP-Code:
    #!/usr/bin/perl

    use strict;
    use 
    warnings;
    sub Ausgabe($);


    my @Array = ( [['1aa','1ab','1ac'],['1ba','1bb','1bc'],['1ca','1cb','1cc']],
                  [[
    '2aa','2ab','2ac'],['2ba','2bb','2bc'],['2ca','2cb','2cc']],
                  [[
    '3aa','3ab','3ac'],['3ba','3bb','3bc'],['3ca','3cb','3cc']],
                  [[
    '4aa','4ab','4ac'],['4ba','4bb','4bc'],['4ca','4cb','4cc']] 
                );

    Ausgabe(\@Array);

    sub Ausgabe($)
    {
      
    my $ArrayRef shift(@_);
      print 
    $ArrayRef->[2][2][2];
      
    #oder
      
    my @Array = @{$ArrayRef};
      print 
    $Array[2][2][2];


  3. #3
    Registrierter Benutzer
    Registriert seit
    29.07.2004
    Ort
    Berlin
    Beiträge
    40
    Ahh super!!
    mit Referenz arbeiten funktioniert.
    Vielen Dank!

    newton

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •