The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Net-SSH-Tunnel

Net::SSH::Tunnel is a simple wrapper around ssh to establish a tunnel.
Supports both local and remote port forwarding.

You'd need to create a very short script like below, and invoke it.
Command line options are parsed inside the module.
#!/usr/bin/perl

use strict;
use warnings;
use Net::SSH::Tunnel;

Net::SSH::Tunnel->run();

# run the driver script with options.
$ ./driver.pl --host dest.example.com --hostname hostname.example.com
    
# the above is equivalent to creating a local port forwarding like this:
# ssh -f -N -L 10000:dest.example.com:22 <effective username>@hostname.example.com

# after the driver script is done, you can then do:
ssh -p 10000 user@localhost

PREREQUISITES

The following modules are required by Net::SSH::Tunnel
    Log::Log4perl

INSTALLATION

To install this module, run the following commands:

    perl Makefile.PL
    make
    make test
    make install

SUPPORT AND DOCUMENTATION

After installing, you can find documentation for this module with the
perldoc command.

    perldoc Net::SSH::Tunnel

You can also look for information at:

    RT, CPAN's request tracker (report bugs here)
        http://rt.cpan.org/NoAuth/Bugs.html?Dist=Net-SSH-Tunnel

    AnnoCPAN, Annotated CPAN documentation
        http://annocpan.org/dist/Net-SSH-Tunnel

    CPAN Ratings
        http://cpanratings.perl.org/d/Net-SSH-Tunnel

    Search CPAN
        http://search.cpan.org/dist/Net-SSH-Tunnel/


LICENSE AND COPYRIGHT

Copyright (C) 2012 Satoshi Yagi

This program is free software; you can redistribute it and/or modify it
under the terms of either: the GNU General Public License as published
by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.