in reply to Unable to obtain information from array

got this fixed by doing the following

sub domainmd5 { my ($exp, $domainexp, $pathfile, $file) = @_; my (@md5subout, $md5subout); $exp->clear_accum(); $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(); } ] ); my @splitarray = split (/[\r\n]+/, $md5subout[0]); ### Multiple \ +r and \n detected in the output. my @greparray = grep ( /$file/, @splitarray ); my @foundmd5 = split(/ +/, $greparray[0]); $md5subout = @foundmd5[0]; print "Hier md5: $md5subout\n"; return ($md5subout); }

Replies are listed 'Best First'.
Re^2: Unable to obtain information from array
by Lotus1 (Vicar) on Feb 16, 2017 at 21:10 UTC
    my (@md5subout, $md5subout); ... $md5subout = @foundmd5[0];

    Using the same name for an array and a scalar works but is not considered a good practice since it is so confusing. You will get warnings from @foundmd5[0] since accessing an array element is a scalar and you are using '@'.

    Scalar value @foundmd5[0] better written as $foundmd5[0] at ...