Hi Madison,<br><br>Could you re-iterate (in a cleaner fashion) what your input is and what your desired output is?&nbsp; As for the output, you can provide Data::Dumper dumps of the data structures you want.<br><br>Could I consider your data to be:<br>
<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
some::string::of::elements<br>some::string<br>some::string::of::other::elements<br>another::set::of::keys<br>
</blockquote><br>?<br><br>(I will loop through this using a while (&lt;&gt;) loop in whatever programming I cook up.)<br><br>Cheers,<br>&nbsp;- Richard<br><br><div class="gmail_quote">On Fri, May 9, 2008 at 11:43 AM, Madison Kelly &lt;<a href="mailto:linux@alteeve.com">linux@alteeve.com</a>&gt; wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">I am not sure that the subject makes a lot of sense, sorry. :)<br>
<br>
In a few places I take a string that can have an arbitrary number of<br>
elements in it that I use as hash keys. I split up this string and feed<br>
in a passed value to a hash reference using the given hash elements.<br>
<br>
So far, I&#39;ve not found an effective way to do this, so I&#39;ve resorted to<br>
a frighteningly dumb solution &quot;that works&quot;. However, it&#39;s not at all<br>
flexible and frankly, I am ashamed of it. So please, TPM, help me regain<br>
some dignity! :)<br>
<br>
I need a way to /intelligently/ create a hash entry. I&#39;ve tried<br>
&#39;eval&#39;ing it into existence but that never seems to work for some reason...<br>
<br>
Thanks!!<br>
<br>
Madi<br>
<br>
-=-=-=-=-=-=-=-<br>
Here is an example of what I am trying to do:<br>
<br>
my %hash=();<br>
<br>
$string1=&quot;some::string::of::elements&quot;;<br>
$string2=&quot;some::string&quot;;<br>
$string3=&quot;some::string::of::other::elements&quot;;<br>
$string4=&quot;another::set::of::keys&quot;;<br>
<br>
$self-&gt;_to_hash(\%hash, $string1, &quot;a value&quot;);<br>
$self-&gt;_to_hash(\%hash, $string2, 12);<br>
$self-&gt;_to_hash(\%hash, $string3, &quot;a really long string that takes up<br>
pages&quot;);<br>
$self-&gt;_to_hash(\%hash, $string4, &quot;something else again.&quot;);<br>
<br>
sub _to_hash<br>
{<br>
 &nbsp; &nbsp; &nbsp; &nbsp;my $self=shift;<br>
 &nbsp; &nbsp; &nbsp; &nbsp;my $hashref=shift;<br>
 &nbsp; &nbsp; &nbsp; &nbsp;my $keystring=shift;<br>
 &nbsp; &nbsp; &nbsp; &nbsp;my $value=shift;<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp;my @key=split /::/, $hashref;<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp;# Here is where it gets... undignified...<br>
 &nbsp; &nbsp; &nbsp; &nbsp;if (@key==5)<br>
 &nbsp; &nbsp; &nbsp; &nbsp;{<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$$hashref{$key[0]}{$key[1]}{$key[2]}{$key[3]}{$key[4]}=$value;<br>
 &nbsp; &nbsp; &nbsp; &nbsp;}<br>
 &nbsp; &nbsp; &nbsp; &nbsp;elsif (@key==4)<br>
 &nbsp; &nbsp; &nbsp; &nbsp;{<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$$hashref{$key[0]}{$key[1]}{$key[2]}{$key[3]}=$value;<br>
 &nbsp; &nbsp; &nbsp; &nbsp;}<br>
 &nbsp; &nbsp; &nbsp; &nbsp;elsif (@key==3)<br>
 &nbsp; &nbsp; &nbsp; &nbsp;{<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$$hashref{$key[0]}{$key[1]}{$key[2]}=$value;<br>
 &nbsp; &nbsp; &nbsp; &nbsp;}<br>
 &nbsp; &nbsp; &nbsp; &nbsp;elsif (@key==2)<br>
 &nbsp; &nbsp; &nbsp; &nbsp;{<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$$hashref{$key[0]}{$key[1]}=$value;<br>
 &nbsp; &nbsp; &nbsp; &nbsp;}<br>
 &nbsp; &nbsp; &nbsp; &nbsp;elsif (@key==1)<br>
 &nbsp; &nbsp; &nbsp; &nbsp;{<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$$hashref{$key[0]}=$value;<br>
 &nbsp; &nbsp; &nbsp; &nbsp;}<br>
 &nbsp; &nbsp; &nbsp; &nbsp;else<br>
 &nbsp; &nbsp; &nbsp; &nbsp;{<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;croak &quot;Unsupported number of kash keys.\n&quot;;<br>
 &nbsp; &nbsp; &nbsp; &nbsp;}<br>
<br>
 &nbsp; &nbsp; &nbsp; &nbsp;return();<br>
}<br>
_______________________________________________<br>
toronto-pm mailing list<br>
<a href="mailto:toronto-pm@pm.org">toronto-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/toronto-pm" target="_blank">http://mail.pm.org/mailman/listinfo/toronto-pm</a><br>
</blockquote></div><br>