1) While PHP is only for CGI, Perl is a general language which can be used to program almost everything. I for example use a lot of perl which has nothing to do with WWW/CGI, e.g. code generation for hardware development, simulation logfile analysis, etc..
Have a look to the
Comprehensive Perl Archive Network (CPAN), there you can see how many open libraries exists for Perl.
I personally compare Perl more with Java - not that they are very similar, but they have some common attributes: Both compile to byte code, both need executable installed (Java VM; Perl Interpreter), both have large set of libraries.
2) For GUI I know only Perl/TK.