When you say
the original doesn't work, what makes you think it isn't?
It seems your simplified fragment is not demonstrating the problem, because:
#!/usr/bin/perl -w
+
# Strict
use strict;
use warnings;
+
# Libraries
use Carp;
use Data::Dumper;
+
+
my %drink;
# other attribute hashes
+
set('larry', 'drink', 'Old Speckled Hen');
print $drink{'larry'}, "\n";
# print "Dump(\%drink) => [%s]\n", Dumper(\%drink);
+
+
sub set {
my ($key, $attr, $value) = @_;
+
my $hashref;
eval "\$hashref = \\\%$attr";
+
if ( !defined $hashref ) {
carp 'Invalid attribute name';
}
else {
$hashref->{$key} = $value;
}
}
is working for me:
% prog541345.pl
Old Speckled Hen
If that isn't what you're getting, please compare the above code fragment (based on what you provided in your post) to your actual code, and see if that helps locate the problem.
s''(q.S:$/9=(T1';s;(..)(..);$..=substr+crypt($1,$2),2,3;eg;print$..$/
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.