Sponsored Content
Top Forums Shell Programming and Scripting perl ref to hash with refs in it (how to get what's being referenced). Post 302549732 by durden_tyler on Tuesday 23rd of August 2011 11:06:51 PM
Old 08-24-2011
Quote:
Originally Posted by mrwatkin
I have a reference to a hash that contains some references. I was just wondering if there was a more simplistic Way of dereferencing the contained references without having to assign them to another reference like this:

Code:
my $href = shift; #some hash
my $temp = $href->{element};
print join('',@$temp);

What I want is to avoid copying the reference into $temp and then getting the info it's referencing. I don't think @$href->{element} would work seeing that $href is a reference itself....
You can write it like this -

Code:
my $href = shift; #some hash
print join('', @{$href->{element}});

Or like this -

Code:
my $href = shift; #some hash
print join('', @{$$href{element}});

An example follows:

Code:
$
$ perl -le '@a = qw(1 10 100); $x{1} = \@a; $href=\%x; print join(" ", @{$href->{1}})'
1 10 100
$
$
$ perl -le '@a = qw(1 10 100); $x{1} = \@a; $href=\%x; print join(" ", @{$$href{1}})'
1 10 100
$
$

tyler_durden
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Hash in perl

Hi Help me with some good links of Hash with in Hash .(Multidimensional hash).. Regards Harikrishna (1 Reply)
Discussion started by: Harikrishna
1 Replies

2. Shell Programming and Scripting

Perl Hash

HI I have a hash like this $hashname->{$filesystem}->{'fsname'}=$filesystem; How to get the values from this multilevel hash. Thanks in advance... :) (1 Reply)
Discussion started by: Harikrishna
1 Replies

3. Shell Programming and Scripting

perl hash

i have an hash table in which each value is an array. How can i print for each key the array values??? something like this: thanks (2 Replies)
Discussion started by: littleboyblu
2 Replies

4. Shell Programming and Scripting

perl hash

This is my data 1 0 1 0 1 1 1 2 1 6 1 7 Assume that first field is key and 2nd field is value I want to create a hash in perl, on this data. My hash should having uniq key and all values by , separated. 1,0,0,1,2,6,7 1 will be my key and rest of are should be values. (3 Replies)
Discussion started by: pritish.sas
3 Replies

5. 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

6. Shell Programming and Scripting

perl hash - using a range as a hash key.

Hi, In Perl, is it possible to use a range of numbers with '..' as a key in a hash? Something in like: %hash = ( '768..1536' => '1G', '1537..2560' => '2G' ); That is, the range operation is evaluated, and all members of the range are... (3 Replies)
Discussion started by: dsw
3 Replies

7. Shell Programming and Scripting

Basic Perl - pass by ref

#!/usr/bin/perl sub addToHash{ my(%hash) = @_; $hash{ 'A' } = 'value'; $hash{ 'B' } = 'value'; $hash{ 'C' } = 'value'; print("Hashmap size is " .keys(%hash) . "\n"); } my %myhash = (); addToHash(\%myhash); print("Hashmap size is " .keys(%myhash) . "\n"); I want this... (6 Replies)
Discussion started by: chrisjones
6 Replies

8. Shell Programming and Scripting

Perl hash help

Hi , i have the below code its working fine when i execute in unix , but its not working in windows could you pls explain me where i am going wrong. This is the program $data = { '1' => 'one' , '2' => 'two' , 3 => 'three' }; print "hello : $data->{'1'}... (2 Replies)
Discussion started by: ragilla
2 Replies

9. 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

10. Programming

Perl: restrict perl from automaticaly creating a hash branches on check

My issue is that the perl script (as I have done it so far) created empty branches when I try to check some branches on existence. I am using multydimentional hashes: found it as the best way for information that I need to handle. Saing multidimentional I means hash of hashes ... So, I have ... (2 Replies)
Discussion started by: alex_5161
2 Replies
Tie::RefHash(3pm)					 Perl Programmers Reference Guide					 Tie::RefHash(3pm)

NAME
Tie::RefHash - use references as hash keys SYNOPSIS
require 5.004; use Tie::RefHash; tie HASHVARIABLE, 'Tie::RefHash', LIST; tie HASHVARIABLE, 'Tie::RefHash::Nestable', LIST; untie HASHVARIABLE; DESCRIPTION
This module provides the ability to use references as hash keys if you first "tie" the hash variable to this module. Normally, only the keys of the tied hash itself are preserved as references; to use references as keys in hashes-of-hashes, use Tie::RefHash::Nestable, included as part of Tie::RefHash. It is implemented using the standard perl TIEHASH interface. Please see the "tie" entry in perlfunc(1) and perltie(1) for more information. The Nestable version works by looking for hash references being stored and converting them to tied hashes so that they too can have references as keys. This will happen without warning whenever you store a reference to one of your own hashes in the tied hash. EXAMPLE
use Tie::RefHash; tie %h, 'Tie::RefHash'; $a = []; $b = {}; $c = *main; $d = "gunk"; $e = sub { 'foo' }; %h = ($a => 1, $b => 2, $c => 3, $d => 4, $e => 5); $a->[0] = 'foo'; $b->{foo} = 'bar'; for (keys %h) { print ref($_), " "; } tie %h, 'Tie::RefHash::Nestable'; $h{$a}->{$b} = 1; for (keys %h, keys %{$h{$a}}) { print ref($_), " "; } THREAD SUPPORT
Tie::RefHash fully supports threading using the "CLONE" method. STORABLE SUPPORT
Storable hooks are provided for semantically correct serialization and cloning of tied refhashes. RELIC SUPPORT
This version of Tie::RefHash seems to no longer work with 5.004. This has not been throughly investigated. Patches welcome ;-) LICENSE
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself MAINTAINER
Yuval Kogman <nothingmuch@woobling.org> AUTHOR
Gurusamy Sarathy gsar@activestate.com 'Nestable' by Ed Avis ed@membled.com SEE ALSO
perl(1), perlfunc(1), perltie(1) perl v5.18.2 2013-11-04 Tie::RefHash(3pm)
All times are GMT -4. The time now is 03:31 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy