Yes you are right. ($str =~ m/\w+/g)[3] is better than @{[$str =~ m/\w+/g]}[3]. I came up with my original solution because I first wanted to do @{$str =~ m/\w+/g}->[3], but that was obviously wrong. So I wrapped it inside @{[ ... ]} to make it work.
And yes I would use split normally, but that $m = $str =~ m/\w+/g idiom and davido's meditation on TMTOWTDI inspired me to come up with something similar.
Comment on Re: Re: Capturing the nth word in a string