書き方が悪いと思うのですが期待通りに動きません。どう書き換えればいいのでしょうか?

$ typeof mfiler4::file_ext && typeof mfiler4::file_ext_by_name && def mfiler4::file_ext_by_name
native function
function

file_ext $-(OPTIONS| uniq) $(file_index -d sdir $ARGV) ## 期待通り動作する
file_ext $-(OPTIONS| uniq) $(file_index $-(OPTIONS|uniq) $ARGV) ## 期待に反してfile_indexが-1で返ってくる
$ ls $(mfiler4::path -d sdir)
mfiler4.xyzsh.swp mfiler4.zip
$ mfiler4::file_ext -d sdir 2
zip
$ mfiler4::file_ext_by_name -d sdir mfiler4.zip
zip
run time error
/home/****/.mfiler4/mfiler4.xyzsh 51: invalid command using
xyzsh 1: run time error
return code is 8192