Sponsored Content
Top Forums UNIX for Dummies Questions & Answers Passing Hash Tables to Subroutines Post 4885 by mirzabhai on Thursday 2nd of August 2001 03:04:32 PM
Old 08-02-2001
Passing Hash Tables to Subroutines

Hi:

How do I pass a hash table down to a subroutine along with some other variables?

For example, I have say a subroutine play_with_hash:

sub play_with_hash
{
my( $var1, $var2, %my_hash ) = @_;
#do stuff with %my_hash
...........
}

Then I want to call the subroutine say in the main routine but i want to send a hash table in the main routine for the subroutine to use:

play_with_hash( $variableA, $variableB, %this_hash );

unfortunately this doesn't work, i get the hash through but $var1 and var2 don't get assigned the right value in the subroutine. any ideas people? THANKS!

Smilie Smilie Smilie Smilie Smilie
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Returning Hash Tables in Perl

Hi: Does anybody know how to return hash tables created in a function? I have something like so: %a_hash_table = build_a_hash_table(); sub build_a_hash_table { my(%hash_table); #some code to build hash table: "%hash_table" for e.g return %hash_table; } ----> This... (1 Reply)
Discussion started by: mirzabhai
1 Replies

2. Programming

hash tables, pthread_key_create

I want to store a bunch of pthread_t types in a hash table, but since pthread_t is not an integer value, I cannot hash it. I was hoping to store a unique nonzero as key 0 for each thread with thread-specific data ala pthread_key_create/pthread_setspecific, but but as it turns out only the first... (2 Replies)
Discussion started by: Corona688
2 Replies

3. Shell Programming and Scripting

Converting tables of row data into columns of tables

I am trying to transpose tables listed in the format into format. Any help would be greatly appreciated. Input: test_data_1 1 2 90% 4 3 91% 5 4 90% 6 5 90% 9 6 90% test_data_2 3 5 92% 5 4 92% 7 3 93% 9 2 92% 1 1 92% ... Output:... (7 Replies)
Discussion started by: justthisguy
7 Replies

4. Programming

Compression algorithm( usage of Hash tables)

Hi All, i was browsing thru' the opensource glib(deflate/inflate) algorithms.. which i am supposed to implement. I came across Dictionary usage (Hash tables), LZ77 algorithm and Huffman coding in that.. i couldn't follow on the Hash table implementation in that. Anybody there to give some... (5 Replies)
Discussion started by: rvan
5 Replies

5. Shell Programming and Scripting

passing a hash to another script in perl

I have a script (say script1.sh ) and I am calling a script (say script2.sh) within the script1.sh. Here in script1.sh I have a hash ( say %hash1) and i have to pass this hash to script2.sh. Basically i have to do some processing in Scirpt2.sh based on the hash(key,values). I wanted to know how can... (2 Replies)
Discussion started by: ammu
2 Replies

6. Shell Programming and Scripting

perl - passing hash references to functions

hi there I have the following script in which i have created a PrintHash() function. I want to pass to this function the reference to a hash (in the final code i will be passing different hashes to this print function hence the need for a function). I am getting an error Type of arg 1 to... (1 Reply)
Discussion started by: hcclnoodles
1 Replies

7. Programming

Hash tables concepts

How hash tables are used to quickly locate a data record? (4 Replies)
Discussion started by: rupeshkp728
4 Replies

8. UNIX for Advanced & Expert Users

Passing Hash variable in to sql query in perl

Hi Everyone, Can anyone help me how do i call hash variable in to sql query in perl. Please see the script below i have defined two Hash %lc and %tab as below $lc{'REFF'}='V_RES_CLASS'; $lc{'CALE'}='V_CAP_CLASS'; $lc{'XRPD'}='V_XFMR_CLASS'; $tab{'V_RES_CLASS'}='V_MFR_SERS';... (6 Replies)
Discussion started by: jam_prasanna
6 Replies

9. UNIX for Dummies Questions & Answers

Hash Tables of Buffers

Hello, I want to know how hash tables for buffers were implemented in Unix and now, in linux how they are implemented ? I am aware of what hashing is..also quite familiar with Unix/Linux. Special case is how device numbers comes into picture..I am curious ! If possible consider some... (0 Replies)
Discussion started by: istevan
0 Replies

10. 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
DEBUG_ZVAL_DUMP(3)							 1							DEBUG_ZVAL_DUMP(3)

debug_zval_dump - Dumps a string representation of an internal zend value to output

SYNOPSIS
void debug_zval_dump (mixed $variable, [mixed $...]) DESCRIPTION
Dumps a string representation of an internal zend value to output. PARAMETERS
o $variable - The variable being evaluated. RETURN VALUES
No value is returned. EXAMPLES
Example #1 debug_zval_dump(3) example <?php $var1 = 'Hello World'; $var2 = ''; $var2 =& $var1; debug_zval_dump(&$var1); ?> The above example will output: &string(11) "Hello World" refcount(3) Note Beware the refcount The refcount value returned by this function is non-obvious in certain circumstances. For example, a developer might expect the above example to indicate a refcount of 2. The third reference is created when actually calling debug_zval_dump(3). This behavior is further compounded when a variable is not passed to debug_zval_dump(3) by reference. To illustrate, consider a slightly modified version of the above example: Example #2 <?php $var1 = 'Hello World'; $var2 = ''; $var2 =& $var1; debug_zval_dump($var1); // not passed by reference, this time ?> The above example will output: string(11) "Hello World" refcount(1) Why refcount(1)? Because a copy of $var1 is being made, when the function is called. This function becomes even more confusing when a variable with a refcount of 1 is passed (by copy/value): Example #3 <?php $var1 = 'Hello World'; debug_zval_dump($var1); ?> The above example will output: string(11) "Hello World" refcount(2) A refcount of 2, here, is extremely non-obvious. Especially considering the above examples. So what's happening? When a variable has a single reference (as did $var1 before it was used as an argument to debug_zval_dump(3)), PHP's engine opti- mizes the manner in which it is passed to a function. Internally, PHP treats $var1 like a reference (in that the refcount is increased for the scope of this function), with the caveat that if the passed reference happens to be written to, a copy is made, but only at the moment of writing. This is known as "copy on write." So, if debug_zval_dump(3) happened to write to its sole parameter (and it doesn't), then a copy would be made. Until then, the parameter remains a reference, causing the refcount to be incremented to 2 for the scope of the function call. SEE ALSO
var_dump(3), debug_backtrace(3), References Explained, References Explained (by Derick Rethans). PHP Documentation Group DEBUG_ZVAL_DUMP(3)
All times are GMT -4. The time now is 01:58 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy