PuTTY is an interactive application not intended to be used from other programs.
Your best options are:
- Net::SSH::Perl: implements an SSH client in Perl. It depends on a bunch of other modules and is not easy to install.
- Net::SSH2: another Perl SSH client but based on a C library.
- cygwin version of the OpenSSH ssh client. You can use Net::SSH on top of it or just open it through IPC::Open2 and send commands to it and read the output back (though, you should be careful to not block). If you just want to transfer files, you can also use my Net::SFTP::Foreign package with it.