Une chose triste à propos de PowerShell est que la fonction et les scriptblocks sont étendus de manière dynamique.
Mais il y a une autre chose qui m'a surpris, c'est que les variables se comportent comme une copie sur écriture dans une portée interne.
$array=@("g")
function foo()
{
$array += "h"
Write-Host $array
}
& {
$array +="s"
Write-Host $array
}
foo
Write-Host $array
La sortie est :
g s
g h
g
Ce qui rend la portée dynamique un peu moins douloureuse. Mais comment éviter la copie sur écriture ?