Quoting the
DBI docs is insufficient because the DBDs can override this. Forcing array context is not required because only a single column is being fetched regardless of which DBD is in use. Whenever more than one column is being fetched you should force list context if you care at all about portability. In scalar context, some DBDs return the first of the multiple columns and some return the last. Personally I try to always force the list context since it doesn't ever hurt and it sometimes helps.