Rather than a second language, per se, I'd suggest
that you learn some functional programming techniques
(hardcore list manipulation and lambda-slinging, mostly).
Whether you do that with Haskell,
Scheme, or Perl is up to you.
(Perl has pretty much all the support you need for a basic
intro to functional programming techniques --
map, anonymous subs, closures;
you name it.)

Breaking out of the pervasive loops-and-variables
mindset can be quite rewarding, and opens up a number of new
WTDIs. (WsTDI?)

A good place to start with Scheme on Windows is DrScheme, as it has a nice GUI with some decent documentation to boot and works straight out of the box (see. zip file). Bringing it back to perl, the ever-inventive Autrijus has made Inline::MzScheme which allows you to interface with mzscheme within perl. If that's not enough the industrious samtregar has created Inline::Guile which is an interface to Guile, the GNU implementation of Scheme (as I understand it).

There are zillions of Scheme interpreters. It seems that everybody, at
some point in their lives, write or at least try to write a Scheme
implementation. -- Well, I haven't written one yet, but I have ported one to
Minix. Lost the source when my laptop was stolen (aeons ago), and then lost
interest. (Why Minix? The beast had only 2 MB of RAM and couldn't run
anything else :) )