> This is from Chapter 9, page 281 slighly >changed to reflect my values: > >for $table ( keys %tablename) { > print "Table Name: $table \n"; > > for $items ( keys %{ $tablename{$table} } ) { > print "\t$items=$tablename{$table}{$items}\n "; > > } > > print "\n";
That looks reasonable. > Here are the results: > >Table Name: TURBINE_PERMISSION > con_name=ARRAY(0x216de8) > index_name=TURBINE_PERMISSION_PK > con_type=ARRAY(0x216c8c) > columns=PERMISSION_ID > created_by=ARRAY(0x211a50) > type=NORMAL > rem_con_name=ARRAY(0x211b04) > tablespace=CTNG It looks like some of the values in your hash are arrays. > This is the code that created the hash of hashes. >It was done in 2 parts: > > First part (initilizing): > >$tablename{"$table"} = { > "index_name" => $index_name, > "columns" => @column_name, > "type" => $index_type, > "tablespace" => $tablespace_name > > }; > > Adding to the hash: > >$tablename{$table} -> {con_name} = [$constraint_name]; >$tablename{$table} -> {con_type} = [$type]; >$tablename{$table} -> {rem_con_name} = [$r_constraint_name]; >$tablename{$table} -> {created_by} = [$generated]; > > The above is from the help (thank you) from a previous post. Why are you wrapping these in arrays? If you used: $tablename{$table} -> {con_name} = $constraint_name; $tablename{$table} -> {con_type} = $type; $tablename{$table} -> {rem_con_name} = $r_constraint_name; $tablename{$table} -> {created_by} = $generated; Then you would get the values in your print, instead of array indexes. > Why am I getting the value in the first part, and the >memory location for the second part? In other words, the key/values >print out as expected from the initializing loop, but not from >the "adding" part? I hope that I answered your question above. The other option is to test each value to see if it is an array, and then dereference it correctly, but I don't think that's what you are looking for. /\/\ark -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]