Perl参数"user"在数组元素中不是数字

Sun*_*aze 0 arrays perl warnings arguments numeric

我总是得到消息,我的数组中的参数不是nummeric.它在这个小代码中发生了5次:

    my $mcnamequery = "SELECT mcID FROM tblMCName WHERE mcName = '".$mcname."'";
$mcid = dbSelect($mcnamequery);
print $mcid->{mcID} . "\n";

my $userfsquery = "SELECT userFS FROM tblMcSubs WHERE mcFS = '".$mcid->{mcID}."'";  
my $execute = $dbh->prepare($userfsquery);
$execute->execute();

while (@usersfs = $execute->fetchrow_array()) {
    print $usersfs['userFS'] . "\n";

    my $mailquery = "SELECT useremail FROM tblUser WHERE userID = '".$usersfs['userFS']."'";
    $execute2 = $dbh->prepare($mailquery);
    $execute2->execute();
    while (@mails = $execute2->fetchrow_array()) {
        $counter++;
        print $mails['useremail']. "\n";
        if($counter == 1){
                $addresses = $mails['useremail'];
        }else{
            $addresses = $addresses. " " . $mails['useremail'];
        }   
    }   
}
Run Code Online (Sandbox Code Playgroud)

第一次发生,就在这一行:print $usersfs['userFS'] . "\n"; 在那之后,我在任何我想要使用的地方收到此消息$usersfs['userFS']$mails['useremail']

错误消息:参数"userFS"在/tem/obm/morningcheck/jantool.pl第520行的数组元素中不是数字.参数"userFS"在/tem/obm/morningcheck/jantool.pl的数组元素中不是数字第522行.参数"useremail"在/tem/obm/morningcheck/jantool.pl第527行的数组元素中不是数字.参数"useremail"在/tem/obm/morningcheck/jantool.pl的数组元素中不是数字第529行.在/tem/obm/morningcheck/jantool.pl第531行的数组元素中,参数"useremail"不是数字.

希望你能帮助我,谢谢!

Sob*_*que 6

print $mails['useremail']. "\n";
Run Code Online (Sandbox Code Playgroud)

这是你的问题.[]表示一个数组索引,一个名为的数组@mails.所以字符串arg 永远不会有效.

也许你的意思是:

print $mails{'useremail'}."\n";
Run Code Online (Sandbox Code Playgroud)

这是调用哈希的关键参数%mails.

但是,当您获取一个名为@mails... 的数组时,您要么必须弄清楚索引,要么进行一些键值关联.

鉴于您的查询都获取单个列,您只需访问:

$mails[0] 
Run Code Online (Sandbox Code Playgroud)

$usersfs[0]
Run Code Online (Sandbox Code Playgroud)