adding a variable name to a hash to name is part of the variable name

B

Bobby Chamness

I have a perl script that I wrote the loops through a list of servers in a
file and I want to create a hash with the server name in it. I want each
server to have its own hash.

for example
$myserver = thor;
hash name
$server_$myserver_name{$some_key}
want to get this hash name
$server_thor_name{$some_key}

How do I get the $myserver name to be interpolated to thor in that line?
I tried this and it failed.
$server_${myserver}_name{$some_key}


-Bobby
 
J

Jürgen Exner

Bobby said:
I have a perl script that I wrote the loops through a list of servers
in a file and I want to create a hash with the server name in it.

You mean a the server name as part of the variable name? Well, maybe you
think that's what you want, but it is A Very Bad Idea (TM). See the FAQ "How
can I use a variable as a variable name?" and gazillions of previuos
discussions in CLPM for details.
I
want each server to have its own hash.

Just use a hash of (references to) hashes.
$server_$myserver_name{$some_key}

Why not
$servers{$myserver_name}{$some_key}

jue
 
J

Joe Smith

Bobby said:
I have a perl script that I wrote the loops through a list of servers in a
file and I want to create a hash with the server name in it.

Sounds good. A master hash with server name as the top-level key.
I want each server to have its own hash.

With a hash of hashes, each server has its own hash. The server's hash
just doesn't have a name; it is a member of the master hash.
$server_$myserver_name{$some_key}

$servers{$myserver_name}{$some_key} = $value;


foreach my $server (sort keys %servers) {
print "Processing server $server\n";
foreach my $key (sort keys %{$servers{$server}}) {
print " $key = $servers{$server}{$key}\n";
}
}


-Joe

P.S. The newsgroup comp.lang.perl is defunct. Use comp.lang.perl.misc instead.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,054
Latest member
TrimKetoBoost

Latest Threads

Top