back to cnewtonne - if you know perl pretty well, you might want to do your first desktop steps in perl. That lets you focusing on understanding gui application development, and the kind of event driven thinking etc. without having to learn a new language.
There are a few libraries you can use to create desktop applications writing your code in perl. The best known toolkits you can hook in from perl are Tk (look on cpan, and there are many tutorials) and wx (
http://www.wxwidgets.org/) - both are multi platform and multi language so quite a bit of the knowledge you learn can be taken onwards to another language.
I'm sure there's more, but either of these would be a good place to start and do some experimenting, get some experience, tear your hair out thinking of all the stuff you have to think about that you didn't have to think about when doing network apps or CLI apps or web development (I remember doing that jump on OS/2 - I'd only ever written command line and computational physics code, and sudenly I got it in my head to buy Visual Age and learn GUI. Knowing about parallel processing didnt help much

OS/2 had some nice APIs but it was still a change in thinking)
You can do pretty much everything in perl and one of those toolkits, it might not the sexiest, fastest app as a result but you'll learn loads. I'm a big fan of "write once, throw away, write again" especially when doing something you haven't done much before.
Then you might want to go to learn python, or C/C++ or C# depending on what kind of applications you want to design... or maybe perl6 will come out and who knows?
