use strict; use Expect; use Term::ReadKey; use MIME::Lite; use File::Grep qw( fgrep fmap fdo ); use Time::Local; sub domainmd5 { $exp->clear_accum(); my ($exp, $domainexp, $pathfile, $file) = @_; my (@md5subout, $md5subout); $exp->expect( $timeout, [qr/$domainexp/ => sub {my $exp1md = shift; $exp1md->send ("md5sum $pathfile\r");} ], ); $exp->expect( $timeout, [qr/$domainexp/ => sub {my $exp1md = shift; @md5subout = $exp1md->exp_before(); } ] ); #chomp (@md5subout); print "element0::::::::\n ---- $md5subout[0]----\nEND element0 ::::::::\n\n"; print "element1::::::::\n ---- $md5subout[1]----\nEND element1 ::::::::\n\n"; print "element2::::::::\n ---- $md5subout[2]----\nEND element2 ::::::::\n\n"; my @greparray = grep ( /$file/, @md5subout ); print "GREPArray::::::::\n ---- @greparray----\nEND ARRAY ::::::::\n\n"; my @splitarray = split (/ +/,$greparray[0]); print "SPLITArray::::::::\n ---- @splitarray----\nEND ARRAY ::::::::\n\n"; my $md5subout = $splitarray[0]; print "Calculated at domainmd5::::-$md5subout-\n"; return ($md5subout); }