My recommendation. See them as tools in a toolkit, not a question of what is best.
For places where you have SQL statements as primary do SQL or PLPGSQL functions.
For places where you are manipulating values (parsing strings for example) use something else (I usually use pl/perl for string manipulation but ymmv).
For places where you are manipulating values (parsing strings for example) use something else (I usually use pl/perl for string manipulation but ymmv).
PLPGSQL works best where you have a large query and some procedurally supporting logic. It becomes a lot less usable, performant, and maintainable the further you get away from that.
So there is no best just different tools in a toolkit.
So there is no best just different tools in a toolkit.