Wird Arraylist als Referenz in PowerShell an Funktionen übergeben?

Ich habe heute herausgefunden, dass eine Arrayliste, die ich an eine Funktion übergeben habe, geändert wird, wenn ich einen Wert aus der Arrayliste innerhalb der Funktion entferne. Der folgende Code scheint zu implizieren, dass die Weitergabe als Referenz erfolgt. Warum sollte das so sein? Ist das beabsichtigt oder eine Art Fehler? (Ich benutze v4 unter Win 8.1)

function myfunction {
    param (
        [System.Collections.ArrayList]$local
    )
        "`$local: " + $local.count
        "removing 1 from `$local"
        $local.RemoveAt(0)     
        "`$local:" + $local.count       
}

[System.Collections.ArrayList]$names=(Get-Content c:\temp\names.txt)

"`$names: " + $names.count
 myfunction -local $names      
"`$names: " + $names.count

ERGEBNIS:

$names: 16
$local: 16
removing 1 from $local
$local:15
$names: 15