use Expect; use IO::Stty; my $sg_viewer = Expect->spawn("ssh -l user "); #$sg_viewer -> log_stdout(0); $sg_viewer->expect( 5, '-re', "Password:" ); sleep 1; $sg_viewer->send("user\n"); $sg_viewer->expect( 5, '-re', "passwd@123" ); sleep 1; $sg_viewer->send("su - root\n"); $sg_viewer->expect( 5, '-re', "Password:" ); sleep 1; $sg_viewer->send("user\n"); $sg_viewer->expect( 5, '-re', "newroot" ); sleep 1; $sg_viewer->send("su - mmadmim\n"); $sg_viewer->expect( 5, '-re', "Password:" ); sleep 1; $sg_viewer->send("attachtoprocess\n"); # this is the internal process which I am accessing... $sg_viewer->interact(); # used interact module here to interact with process sleep 1; $sg_viewer->send("4"); # sending 4 as process have so many options to access the internal things.. but code is not going inside. $sg_viewer->send("exit\n");