加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

数组 – 从AJAX请求中迭代Perl数组

发布时间:2020-12-16 02:47:52 所属栏目:百科 来源:网络整理
导读:我正在研究Catalyst数据库项目并试图通过jQuery做一些 AJAX请求.参数正在发送,如图1所示. 请注意,“诊断”和“type_consents”(及其对应的日期)都作为值数组(值1,值2,…值n)发送. 现在对于服务器端处理, Catalyst::Request 允许通过$req-参数轻松检索数据,但
我正在研究Catalyst数据库项目并试图通过jQuery做一些 AJAX请求.参数正在发送,如图1所示.

请注意,“诊断”和“type_consents”(及其对应的日期)都作为值数组(值1,值2,…值n)发送.

现在对于服务器端处理,Catalyst::Request允许通过$req->参数轻松检索数据,但它似乎对我不起作用.

我是这样做的:

my $params = $c->request->parameters; #Retrieving all parameters

my @type_consents         = $params->{type_consent};
my @date_consents         = $params->{date_consent};
my @diagnosis             = $params->{diagnosis};
my @date_diagnosis        = $params->{date_diagnosis};

然后我需要循环这些数组并为每对值(诊断|日期,同意|日期)插入.另外,我需要存储和处理所有事务并在eval()块中一次执行它们,所以我这样做:

my %transactions;

# Diagnosis
my $diag_index = 0;

foreach my $key ( 0 .. $#diagnosis ) {
    $transactions{diagnosis}{$diag_index} = $diagnosis_mod->new(
        {
            subject_id          => $subject_id,diagnosis_date      => $date_diagnosis[$key],diagnosis           => $diagnosis[$key],diagnosis_comment   => "",suggested_treatment => ""
        }
    );

    print STDERR "n" . $date_diagnosis[$diag_index];
    print STDERR "n DEBUG: $date_diagnosis[$diag_index] | $diagnosis[$diag_index] | key: $diag_index";
    print STDERR "n DEBUG2:" . Dumper( @date_diagnosis ) . " | " . Dumper( @diagnosis );

    $diag_index++;
}

# I'm avoiding evaluating and performing the transactions so neither eval() nor database impact are shown above.

这些调试打印以下内容:

这是否表明我的“数组”只是一个带字符串的一维变量?我尝试拆分它,但这也不起作用.

解决方法

您可以在哈希中存储的唯一值是标量.因此,$params-> {type_consent}是标量,而不是列表.但是,由于对事物(标量,数组,散列,对象,整形等)的引用也是标量,因此可以将参考存储在散列中.

因此,$params-> {type_consent}是对数组的引用,而不是数组或列表本身.

那么我认为你想要的是将它分配给我的$type_consent = $params-> {type_consent};然后使用@ $type_consent作为你的数组(因此它们都指向同一个数组 – 通过@ $type_consent更改某些内容来更改%$params中的数组),或者通过说出@type_consent = @ {$params-来复制数组> {type_consent}} ;.

我选择使用哪一个是情境性的,但如果没有理由复制它,我倾向于使用参考选项来保持内存使用率下降.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读