1: Imperative - C, Fortran, Pascal, ...
2: Object-oriented - C++, Java, Python, Ruby, (maybe Delphi's Object-Pascal), ...
3: Functional - OCaml, Erlang, Haskell, F#, ...
4: Declarative - Makefiles, QML, SQL, ....
To be perfectly honest, I don't know which bucket I should use for Prolog. It's supposedly logical, declarative and functional at the same time. I've never managed to understand it, despite trying.
And for the record: perl in basic form is imperative. With the introduction of "bless" keyword it crosses over to object-oriented domain but following the syntax is not necessarily straightforward. [I've spent a non-insignificant number of days auditing OO-perl. It's not a pleasant experience.]