in reply to Expect Module problem

Well, you aren't doing anything after spawning the process, so the script is ending and killing the process. Try the following:
use Expect; $Expect::Debug = 1; my $string= '/usr/bin/ssh 127.0.0.1'; my $exp=Expect->spawn($string) || die "error $!\n"; $exp->expect(2, "password: "); $exp->send("XXXXXXXX\n"); $exp->expect(2,'$'); $exp->send("ls\n"); $exp->expect(2,'$');
This works fine on my system.

Update:

If your goal is to interact with the ssh session after scripting the login, try adding:

$exp->interact();
after you have finished logging in.