I don't see why Perl needs interfaces in any form, they're just there to satisfy the compiler in statically typed languages, aren't they?

Barring my opinion that Java interfaces are so far broken they're almost worse than not even attempting to solve the problem, no.

Type systems aren't only for statically typed languages. They're useful in dynamic systems as well as systems which can't do every type check at compile time. (These two categories overlap a bit.)

The nice thing about having language support for interfaces in your type system is being able to check that an object you've received somehow conforms to the interface you expect to use with it. It's a little nicer if the language can check that for you (whether statically, at compile time, dynamically, or at runtime), but at worse, you can also check it yourself.