in reply to Dynamically named hashes (w or w/o strict)

It's very simple:
my $variable = { key => "value" }; # or push @array, { key => "value", key2 => $value2 }; # access to the items: say $array[0]{key}; # prints ``value''

See perldata, perlreftut and perldsc.

Replies are listed 'Best First'.
Re^2: Dynamically named hashes (w or w/o strict)
by chrishowe (Acolyte) on Dec 11, 2008 at 15:16 UTC
    Doesn't that just dynamically create contents for a hash? I'm after a dynamically create name for a hash.
    Or am I being slow and missed your point there? :-)

      One thing is for sure, until you explain to us why you are "trying to create a set of dynamically named hashes, with an array of references pointing to them" we will probably miss your point. :)

      Is there some reason why an anonymous hash won't do exactly what you need without having to have an additional array? After all, you can always create a dynamic list of the hashes keys and values whenever you want.

      jeffa

      L-LL-L--L-LL-L--L-LL-L--
      -R--R-RR-R--R-RR-R--R-RR
      B--B--B--B--B--B--B--B--
      H---H---H---H---H---H---
      (the triplet paradiddle with high-hat)
      
        lol, the reason for me using "no strict" was due to a fundamental lack of understanding :-)

        Kennethk's post below has cleared it up a bit for me (see comment).

        my $hash_ref = {one => "number"};
        my $i = 0;
        $hash_ref->{"a"} = "letter"; push @array, $hash_ref; $hash_ref = {}; #This "resets" or creates a new reference?
        %{$hash_ref} = (banana => "fruit",
        carrot => "vegetable");
        push @array, $hash_ref;

        I thought if you used the same name then it would alter the same hash. So to narrow down my understanding gap... anonymous hashes. If I am still fundamentally wrong here then please let me know :-) Cheers!
      Sorry, I answered your question But then you are going to have to create a dynamically named anonymous hash? and ignored the "named" part, because anonymous and named are contradictory.

      Whenever you think you want variables with variable names, you can just use a hash. In this case you then have a Hash-of-Hash structure. If you want variable named variables nonetheless, search for weak references.