在javascript中使用perl数组

Use perl array in javascript

本文关键字:perl 数组 javascript      更新时间:2023-09-26

我正在开发perl应用程序,我想打印perl数组在我的javascript警报,但它只是不工作,这里是我的代码

sub leaveInfo{
            my ( $title_id ) = @_;
            $sql = "SELECT tab_timeslot.`location` , tab_timeslot.`date` , tab_timeslot.`time` , tab_timeslot.`end_time`
            FROM tab_appointment
            INNER JOIN tab_timeslot ON tab_appointment.timeslot_id = tab_timeslot.timeslot_id
            WHERE tab_appointment.lecture_id ='" . $title_id ." '";
            $query = &statement_database($sql);
            my @co; 
            my @arro;
            my $num = 0;
            while(my(@co)=$query->fetchrow_array){
             push (@arro,$co[$num]);
            $num++; 
            }
            print @arro;
        }   
        print '<script type="text/javascript">' . "'n" .
              '   Check = confirm("Do you really want to leave this lecture?'.leaveInfo(1215).'");' . "'n" .
              '   if (Check == false) history.back();' . "'n" .
              '   else                location.href="index.pl?value=my_events&to_do=leave_lecture_exec&user_id=' . $cgi->param('user_id') . '&title_id=' . $cgi->param('title_id') . '"' .  "'n" .
              '</script>' . "'n";

        }

警告只显示数组中存储的对象的数量,而不是数组本身的值,任何帮助都是有帮助的

要获得您所说的输出,您需要

sub leaveInfo{
   ...
   return @arro;
}

尽管你声称你有

sub leaveInfo{
   ...
   print @arro;
}

这其实是一件好事。


@array在list上下文中计算为一个值的列表。

@array在标量上下文中求值为数组中元素的个数。

串联操作符必须在标量上下文中计算其操作数,所以这就是为什么您要获得数组中元素的数量。

@a = qw( a b c d );
print @a."'n";   # 4

在您的情况下,您可以使用

print '... confirm("... '
    . join(' ', leaveInfo(1215))
    . '");...';

如果字符串中包含"'则失败。好:

sub to_js_str_literal {
   my ($s) = @_;
   $s =~ s/([''"])/''$1/g;
   return qq{"$s"};
}
print '... confirm("... "+'
    . to_js_str_literal(join(' ', leaveInfo(1215)))
    . ');...';