Many developers know them – parameter by reference. By this way the variables will not be duplicated. A pointer is created which points to the actual variable. If you modify this referenced parameter you will modify the referenced variable. So you can make changes to many parameters and will not create a lot of functions with returnvalues.
[string]$Global = '' function TestRefFunction([ref]$Param) { [string]$Param.Value = '5' $Param | Out-Default } TestRefFunction([ref]$Global) $Global | Out-Default
By this example the transmitted parameter “$global” is a reference. So all changes to it in the function will also be written into the global variable. In this example so 2 times a “5” will be given out.
~David