You assign a reference to an empty anonymous array as the first and only element of @official. Do not you rather want to assign an empty array? If yes, change [] to ().
You define @official with my. If you are then dumping it from outside the loop, it does not exist anymore. Are you using strict?
Even if you broaden the scope of @official, it will not contain all the results, because you assign the reference to it (see 1).