Anzeige:
Ergebnis 1 bis 5 von 5

Thema: PERL: dynamische Variable

  1. #1
    Registrierter Benutzer
    Registriert seit
    30.09.2002
    Beiträge
    24

    Question PERL: dynamische Variable

    An alle Experten, kann man in Perl dynamische Variablen erstellen? Ich möchte folgendes machen:

    #!/usr/bin/perl

    my $ldapAttributes = "['sn','givenName','telephoneNumber']";
    $ldapAttributes =~ s/[^0-9,^a-z,^A-Z]//gi;
    my @ATTRS;
    @ATTRS = split(/,/, $ldapAttributes);
    $ending_value = scalar(@ATTRS) ;

    for my $array_element(@ATTRS) {
    #my (\$$array_element);
    #my ${$array_element};
    }


    In dem roten Teil möchte ich eine Zuweisung bekommen, so dass ich die Variable $sn, $givenName und $telephoneNumber benutzen kann. Geht das überhaupt?

    Danke für eure Hilfe!

    Raoul

  2. #2
    Registrierter Benutzer
    Registriert seit
    19.08.2004
    Beiträge
    404
    Was Du da machen willst, nennt man symbolische Referenzen... von deren Benutzung wird eher abgeraten. Aber wenn Du sicher bist, dass nix passiert, dann geht das so:

    PHP-Code:
    my @ATTRS = ('sn','givenName','telephoneNumber');

    foreach 
    my $array_element (@ATTRS)
    {
      $
    $array_element "xyz\n";
    }

    print 
    $sn;
    print 
    $givenName;
    print 
    $telephoneNumber
    hth, Michael

  3. #3
    Registrierter Benutzer
    Registriert seit
    08.11.2004
    Beiträge
    16
    Mit use strict (was man ja benutzen sollte http://wiki.perl-community.de/bin/vi...asis/UseStrict) wirst Du das nicht machen können...

    Ich würde eher zu einem Hash raten:
    Code:
    my %hash;
    my @ATTRS = ('sn','givenName','telephoneNumber'); 
    
    foreach my $array_element (@ATTRS) 
    { 
      $hash{$array_element} = "xyz\n"; 
    } 
    
    print $hash{sn}; 
    print $hash{givenName}; 
    print $hash{telephoneNumber};

  4. #4
    Registrierter Benutzer
    Registriert seit
    30.09.2002
    Beiträge
    24

    Thumbs up

    Das ist genau was ich gesucht habe. Danke an euch beide, alle beide Lösungen funktionieren!

    Die zweite Lösung mit dem Hash gefällt mir eigentlich besser.

    Vielen Dank!

  5. #5
    Registrierter Benutzer
    Registriert seit
    19.08.2004
    Beiträge
    404
    Ja - das Hash würde ich auch empfehlen.
    Für Dich evtl. wichtig zu beachten, das es in einem HAsh keine doppelten Keys gibt.
    Das heißt, wenn bei Deiner ldap Abfrage sowas

    sn=abc, dn=blabla1, dn=blabla2, givenName=xyz, usw...

    rauskommt, gibt es in dem Hash nur einmal $hash{dn} - und zwar das letzte.

    Gleiches gilt eigentlich auch für die symbolischen referenzen...

    nur so btw

Lesezeichen

Berechtigungen

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