.... .... ....... for my $_entry (@_hosts) { eval { $_ssh{$_entry} = Net::OpenSSH->new($_entry, user=>$config{_ssh_user}, password=>$config{_ssh_passwd}, async => 1, master_opts => [-o => "StrictHostKeyChecking=no"]); if($_ssh{$_entry}->error) { die CLI::Exception::SSHConnectException->new() ; } else { $logger->debug("Successfully established SSH connection with ", $_entry); } }; if(catch my $_e) { if ($_e->isa('CLI::Exception')) { $logger->error($_e->description, " with ", $_entry); print $_e->description." with $_entry \n"; } } } if($_command eq "getfile") { for my $_entry (@_hosts) { $_pid{$_entry} = $_ssh{$_entry}->rsync_get({async => 1, stderr_fh=>$fh, progress=> 1, recursive => 1}, "/home/shagun/check.c", "/home/shivangi/") or ($logger->error("rsync_get to $_entry failed") and print "rsync_get to $_entry failed\n"); } } elsif($_command eq "putfile") { for my $_entry (@_hosts) { $_pid{$_entry} = $_ssh{$_entry}->rsync_put({async => 1, stderr_fh=>$fh, recursive => 1, progress => 1 }, "/home/shivangi/shwetabh.img", "/home/shagun/") .... ... ... .. When i execute the code with debug mode enabled, output is: garfield:/home/shivangi/CLI_14/lib1 # ./Application.pl garfield>putfile region-group groupB # open_ex: ['ssh','-O','check','-T','-S','/root/.libnet-openssh-perl/root-10.112.35.43-3848-813787','-l','root','10.112.35.43','--'] # _waitpid(3981) => pid: 3981, rc: # open_ex: ['rsync','-e','ssh -S /root/.libnet-openssh-perl/root-10.112.35.43-3848-813787','--blocking-io','-q','--recursive','--progress','--','/home/shivangi/shwetabh.img','root@10.112.35.43:/home/shagun/'] # open_ex: ['ssh','-O','check','-T','-S','/root/.libnet-openssh-perl/root-10.112.32.56-3848-476728','-l','root','10.112.32.56','--'] # _waitpid(3984) => pid: 3984, rc: # open_ex: ['rsync','-e','ssh -S /root/.libnet-openssh-perl/root-10.112.32.56-3848-476728','--blocking-io','-q','--recursive','--progress','--','/home/shivangi/shwetabh.img','root@10.112.32.56:/home/shagun/'] # open_ex: ['ssh','-O','exit','-T','-S','/root/.libnet-openssh-perl/root-10.112.35.43-3848-813787','-l','root','10.112.35.43','--'] # _waitpid(4236) => pid: 4236, rc: # open_ex: ['ssh','-O','exit','-T','-S','/root/.libnet-openssh-perl/root-10.112.32.56-3848-476728','-l','root','10.112.32.56','--'] # _waitpid(4237) => pid: 4237, rc: