なんにせよ長いコードはどっかに貼るなりしてくれんと見づらくてたまらん
http://codepad.org/kPvxB3T3

& $phase.first -ArgmentList ($setup_result)
この記法は初めて見るけど
結局ScriptBlockに引数渡した所でfunc0によしなに届けてくれる訳じゃない