is right that selectcol_arrayref() is a method of the database handle ($dbh), not of the statement handle ($sth). Here's one way to remember which DBI object the various methods belong to : database handle methods take data out of the database in a single step whereas statement handle methods require multiple steps - prepare, execute, fetch.
Another way to tell is by the error message: Can't locate object method "selectcol_arrayref" via package "DBI::st". That message says it can't find that method in that package, in other words, that object has no such method. Either you misspelled method name, or you are using it on the wrong object.