Objective:
When we are executing our Perl script by using Autosys tool (Job Scheduling tool). It is not able to recognise Expect.pm which I used in my Perl code. And I am getting the below error.
Can't call method "expect" on an undefined value at /xxxx/bin/run_EMCTSftpPutEclerxFile.pl line 18.
Expect is not working go
But when I am executing it manually It works flawlesly. Pl. find my Perl script below:
1 #!/opt/perl/5.8.0/bin/perl
2 #ident "%W%"
3
4 use Expect;
5
6 $xxxx_FTP_HOST="xxxxx";
7 $xxxx_FTP_USER="xxxx";
8 $xxxx_FTP_PASS="xxxxx";
9 $xxxxx_FTP_LDIR="/opt/ftp/pub/outgoing";
10 $xxxxx_FTP_LFILE=$ARGV[0];
11 $timeout = 10;
12 $command = 'sftp';
13
14 $params = ("$xxxxxR\@$xxxxX_FTP_HOST");
15
16 $exp=Expect->spawn($command, $params) or print "Expect is not working go \n";
17
18 $exp->expect($timeout,
"Password:");
19
20 $exp->send("$Exxxxx_FTP_PASS\n");
21
22 $exp->expect($timeout,
"sftp>");
23
24 $exp->send("binary\r");
25
26 $exp->expect($timeout,
"sftp>");
27
28 $exp->send("put $xxxxxX_FTP_LDIR/$xxxxx_FTP_LFILE \n");
29
30 $exp->expect($timeout,
"sftp>");
31
32 $exp->send("bye\n");
33
34 $exp->soft_close();