skalar || referenz ?
Results 1 to 5 of 5
  1. #1
    shabby's Avatar
    Title
    Elite
    Join Date
    Jan 2002
    Location
    Schrödinger, 1040 Wien
    Posts
    267
    Thanks
    2
    Thanked 9 Times in 8 Posts

    skalar || referenz ?

    frage:
    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 ???

    mfg

    edit: workaround gefunden
    Last edited by shabby; 08-06-2002 at 18:47.

  2. #2

    Title
    Principal
    Join Date
    Apr 2002
    Posts
    27
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Re: [ PERL ] 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

  3. #3
    shabby's Avatar
    Title
    Elite
    Join Date
    Jan 2002
    Location
    Schrödinger, 1040 Wien
    Posts
    267
    Thanks
    2
    Thanked 9 Times in 8 Posts

    vielen dank

    danke, ich bin perl einsteiger

    übrigens mein workaround war:

    if(defined @{ARGS{name}})

    mfg

  4. #4

    Title
    Principal
    Join Date
    Apr 2002
    Posts
    27
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Re: vielen dank

    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

  5. #5
    #!/usr/bin/perl's Avatar
    Title
    Elite
    Join Date
    Jan 2002
    Posts
    291
    Thanks
    0
    Thanked 1 Time in 1 Post
    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
    Last edited by #!/usr/bin/perl; 09-06-2002 at 14:14.
    this is Unix land. In silent nights, you can hear Windows machines reboot...

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •