Java is no more and no less a compiled language than Perl is. Java is compiled to p-code which then requires a separate run-time interpreter (We do the same thing here where I work with 4GL). Perl is compiled at runtime (very quickly) to some sort of op-code tree which is then interpreted by the built-in interpreter. Not having to explicitly complile a Perl program is one of the reasons perl tends to have a shorter development cycle (i.e. we get stuff done quicker).
OTOH, C is truly compiled, so for specific tasks, it'll run quicker, though will probably take longer to develop some specific application in. And for many tasks, even if some Perl program is 10-100 times slower than an optimized C program, it is usually 'fast enough' in that the user doesn't care if he gets the result in 3 milliseconds or 3/10ths of a second, and the savings in development and maintenance time more than make up for the difference in runtime.
And as for GUI's, perl has modules for many different GUI toolkits.