skalar || referenz ?

  • shabby <shabby> wrote:
    >angenommen ich lese die cgi-query über das ARGS - Hash aus.
    >weiters kann entweder der Fall
    >ARGS{var} = Skalar oder
    >ARGS{var} = Referenz auf Array
    >auftreten.
    >Wie frag ich ab, welche der beiden Fälle es ist ???

    perldoc -f ref

    HTH
    slayven

  • shabby <shabby> wrote:
    >danke, ich bin perl einsteiger
    >
    >übrigens mein workaround war:
    >
    >if(defined @{ARGS{name}}) :)
    >

    Das wird unter strict und warnings fehler ausspucken, wenn du
    versucht ein SCALAR zu dereferenzieren. Bei einem Array sollts
    aber passen, ja.

    slayven

  • Die Funktion ref( $arg ) fragt einen Skalar ab, obs eine Referenz ist oder nicht; gibt falsch zurueck, falls das Argument ein String oder eine Zahl ist, wenn es sich um eine Referenz handelt, kriegst einen String, der aussagt, was fuer eine Art von Referenz es ist:

    SCALAR, HASH, ARRAY, REF ( Referenz auf eine Referenz ), CODE ( Ref auf eine sub ), GLOB ( Ref auf Typeglob );


    ein Beispiel:

    my %hash;
    my $hashref = \%hash; # oder: my $hashref = ();
    print ref( $hashref ); # gibt HASH zurueck

    my $string = "Perl Rulez\n";
    print ref ( $string ); # gibt false zurueck

    btw, eine Referenz ist immer ein Skalar ;)

    ciao

    Oliver

    this is Unix land. In silent nights, you can hear Windows machines reboot...

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!