![]() |
![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
| Welcome to Windows Vista Forums. Our forum is dedicated to helping you find solutions with any problems, errors or issues you are experiencing with Windows Vista. The Vista forum also covers news and updates and has an extensive Windows Vista tutorial section that covers a wide range of tips and tricks. |
| |||||||
![]() |
| |
| | #1 (permalink) |
| | Passing hash table by reference Hi, Could someone show me the correct way to pass a hash table by reference to a function in powershell so i can access the data populated in the hash table outside the function. Within the funciton, i have my data populated in the hash table however when i leave the function, the count of the hash table returns 0 :-( ReadConfigFile $xmlfile ([REF]$hashTable) { switch( $xmlreader.NodeType ) { switch( $xmlreader.Name ) { "SomeRegex" { $PRIVATE:tmpTable = @{} $reader.ReadToFollowing("somestuff") do { $xmlreader.MoveToAttribute("name") $name = $xmlreader.value $xmlreader.MoveToAttribute("src") $src = $xmlreader.Value $tmpTable[$name] = $src }while( $xmlreader.ReadToNextSibling("somestuff") ) $hashTable = $tmpTable write-host $hashTable.Value.count # all ok here break } break } } $PRIVATE:aHashTable ReadConfigFile $xmlfile ([REF]$aHashTable) I also tried to assign the values directly to the hash table without using a temp hash table and still no joy... Afolabi |
My System Specs![]() |
| | #2 (permalink) |
| | Re: Passing hash table by reference Objects are always passed by reference, so that you don't have to use [ref] for hashtables (and other *objects*) function Test($h) { $h['key1'] = 'value1' $h['key2'] = 'value2' } $hash = @{} $hash['key'] = 'value' Test $hash $hash output: Name Value ---- ----- key2 value2 key value key1 value1 -- Thanks, Roman Kuzmin PowerShellFar and FarNET: http://code.google.com/p/farnet/ |
My System Specs![]() |
| | #3 (permalink) |
| | Re: Passing hash table by reference On 12 Sep, 10:54, "Roman Kuzmin" <z...@xxxxxx> wrote: Quote: > Objects are always passed by reference, so that you don't have to use [ref] > for hashtables (and other *objects*) > > function Test($h) > { > $h['key1'] = 'value1' > $h['key2'] = 'value2' > > } > > $hash = @{} > $hash['key'] = 'value' > Test $hash > $hash > > output: > > Name Value > ---- ----- > key2 value2 > key value > key1 value1 > > -- > Thanks, > Roman Kuzmin > PowerShellFar and FarNET:http://code.google.com/p/farnet/ Thanks Roman.... |
My System Specs![]() |
![]() |
| Thread Tools | |
| |
Similar Threads | ||||
| Thread | Forum | |||
| Sorting a Hash Table before outputting it to html | PowerShell | |||
| How to create a hash table from an array | PowerShell | |||
| Adding data to a hash table | PowerShell | |||
| Variable as hash table issue | PowerShell | |||
| How do I read a XML file into a hash table? | PowerShell | |||