perl hash of hashes from database


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting perl hash of hashes from database
# 1  
Old 07-14-2009
perl hash of hashes from database

hi there, I have some database output that looks like this


Code:
SELECT nic_name,nic_duplex,nic_speed,nic_ip FROM network_table WHERE hostname = "server1"

result is this (ive delimited with a pipe for ease of reading)



Code:
bge0|full|1000|10.32.100.1
bge1|full|1000|11.12.101.7 
bge2|full|100|13.12.10.17



Now, i know how to create a hash of hashes manually from this data, and it works just fine, see below




Code:
#!/opt/coolstack/bin/perl
  %HoH = (     
       bge0 => {         
                      nic_speed   => "full",
                      nic_duplex  => "1000", 
                      nic_ip      => "10.32.100.1",   
                   },     
       bge1 => {        
                      nic_speed   => "full",
                      nic_duplex  => "1000",      
                      nic_ip      => "11.12.101.7",    
                   },    
       bge2 => {         
                      nic_speed   => "full",       
                      nic_duplex  => "100",        
                      nic_ip      => "13.12.10.17",   
                   }, 
            );


however, can somebody advise me how I would get this hash of hashes auto-generated straight from the database using DBI ? currently all I have is




Code:
#!/opt/coolstack/bin/perl

use DBI; 
$box = "server1";  
my $dbh = DBI->connect("DBI:mysql:CMDB",root,password,) or die $DBI::errstr; 

my $sth = $dbh->prepare("SELECT nic_name,nic_duplex,nic_speed,nic_ip FROM network_table WHERE hostname = '$box'") or die $DBI::errstr;  

$sth->execute or die $DBI::errstr; 

while (my $hashr = $sth->fetchrow_hashref) { 

}


but i really dont know how I can self populate my hash of hashes directly from the SELECT statement which produces the table above..somebody suggested using fetchrow_hashref hence why i have added it in the line above, but it doesnt seem to do what i want

Any help or guidance on this would be greatly appreciated ( i am very new to perl)
# 2  
Old 07-14-2009
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Perl hash of hashes anonymous array

Hello experts. I'm having problems with a snippet of code. I was hoping to get help/advice to correct. A file that this script parses has changed to the point where I can no longer use a scalar, it looks as though I need to create an array for a hash of hashes below. The first output of... (1 Reply)
Discussion started by: timj123
1 Replies

2. Cybersecurity

Whitelist, goodware, database of hashes

I have found this excellent site: NSRL Downloads (sorry if it was already mentioned) there are Solaris and Linux files there too. its all in a text file, over 11Gb large. (0 Replies)
Discussion started by: orange47
0 Replies

3. Shell Programming and Scripting

Compare values of hashes of hash for n number of hash in perl without sorting.

Hi, I have an hashes of hash, where hash is dynamic, it can be n number of hash. i need to compare data_count values of all . my %result ( $abc => { 'data_count' => '10', 'ID' => 'ABC122', } $def => { 'data_count' => '20', 'ID' => 'defASe', ... (1 Reply)
Discussion started by: asak
1 Replies

4. Shell Programming and Scripting

perl: dereferencing a hash of hashes

Hi there, I am trying to dereference my hash of hashes but post dereferencing, it seems to lose its structure I am using Data::dumper to help me anaylise. This is the code im using to build the HoH, (data comes from a file). I have also performed a Dumper on the data structure before and after... (1 Reply)
Discussion started by: rethink
1 Replies

5. Shell Programming and Scripting

hash of hashes : how to print reference and its internal structure?

#use perl 5.8.5; my %h1=(a=>'b', c=>'d'); my %h2=(a1=>'b1', c1=>'d1'); my $R1=\%h1; my $R2=\%h2; my %h= {$R1, $R2}; my $href=\%h; # hash of hashes foreach my $key (keys %$href){ print "Z::$$href{$key}\n" } When I am trying to print elements of hash of hashes, it prints HASH... (1 Reply)
Discussion started by: shristi
1 Replies

6. Shell Programming and Scripting

Perl Hash:Can not keep hash data in the same order that it was inserted

Can Someone explain me why even using Tie::IxHash I can not get the output data in the same order that it was inserted? See code below. #!/usr/bin/perl use warnings; use Tie::IxHash; use strict; tie (my %programs, "Tie::IxHash"); while (my $line = <DATA>) { chomp $line; my(... (1 Reply)
Discussion started by: jgfcoimbra
1 Replies

7. Shell Programming and Scripting

PERL - another quick hash of hashes question

Hi, sorry, two hash related questions in one day .. but this has got me a bit stuck. I have a mysql database table that kind of looks like this, the table is called "view1" and a snippet of that table (SELECT'ing just rows with serial number 0629AN1200) is below serial nic_name ... (2 Replies)
Discussion started by: hcclnoodles
2 Replies

8. Shell Programming and Scripting

PERL - printing a hash of hashes to screen

Hi there I have a hash of hashes made up of the following data bge0|100|half|10.36.100.21 bge1|1000|full|10.36.100.22 bge2|1000|full|10.36.100.23 which when i turn into a hash, would look like this inside the system bge0 -> nic_speed -> 100 nic_duplex -> half ... (6 Replies)
Discussion started by: hcclnoodles
6 Replies

9. Shell Programming and Scripting

Print Entire hash list (hash of hashes)

I have a script with dynamic hash of hashes , and I want to print the entire hash (with all other hashes). Itried to do it recursively by checking if the current key is a hash and if yes call the current function again with refference to the sub hash. Most of the printing seems to be OK but in... (1 Reply)
Discussion started by: Alalush
1 Replies

10. Shell Programming and Scripting

Perl hashes "Can't use subscript on private hash"

This is driving me mad, where am I going wrong? The relevant segment of code: sub getndsybcons { my @servers=@{$_}; my @sybservers=@{$_}; my %results; foreach my $server(@servers) { my $biggestsyb; my $biggestsybval=0; ... (9 Replies)
Discussion started by: Smiling Dragon
9 Replies
Login or Register to Ask a Question