通过perl数组访问和绘制图表

时间:2014-06-05 20:17:32

标签: javascript perl highcharts

我正试图在perl中以这种方式编写代码。

\$('#AmpCovPlot').highcharts({

    var amp_name = new Array[$amp];
    var amp_cov  = new Array[$cov]
    chart: {
        type: 'line'
    },
    title: {
        text: 'Average cov'
    },
    xAxis: {
        categories: [amp_name]
    },
    yAxis: {
        title: {
            text: 'Amp name'
        }
    },
    series: [{
        name: [amp_name]
        data: [amp_cov]

  }]
});

所以$amp$cov是包含数组元素的perl变量,由语句生成:

 my $Cov=join(",",@cov);
  

我得到了“Uncaught SyntaxError:Unexpected Identifier”。我知道我犯了一个大错,而且我是javascript的新手。

有人能让我知道如何解决这个问题吗?

感谢!!!

2 个答案:

答案 0 :(得分:0)

"意外的标识符"是一个无效的Javascript提示。在您的情况下,我认为您print没有双引号qq{}的Javascript代码更准确:您print一个$,其中不允许$或者你不打印预期$的{​​{1}}。

当你只是复制+粘贴你的Javascript代码时,你也有一个语法错误:

$

下一部分是var amp_cov = new Array[$cov] // no semicolon ; // what is the following part for? you dont really assign that stuff to // something .... seems wrong chart: { type: 'line' }, title: { text: 'Average cov' }, xAxis: { categories: [amp_name] }, yAxis: { title: { text: 'Amp name' } }, series: [{ name: [amp_name] data: [amp_cov] }] 数组的join。您还需要在Javascript中引用变量:

Perl

所以你的var array = ['a','b','c']; 需要像:

join

这只是意味着,您首先为my $cov = join q{,}, map {qq{'$_'}} @cov; 中的每个元素添加单引号,然后@cov全部添加join

答案 1 :(得分:0)

您正在对象中定义变量,这对JS来说是不合适的:

$('#AmpCovPlot').highcharts({

var amp_name = new Array[$amp]; // not here!
var amp_cov  = new Array[$cov]  // not here!
chart: {
    type: 'line'
},
title: {
    text: 'Average cov'
},
xAxis: {
    categories: [amp_name]
},
yAxis: {
    title: {
        text: 'Amp name'
    }
},
series: [{
    name: [amp_name]
    data: [amp_cov]

}]
});

这应该这样做:

var amp_name = new Array[$amp]; // here define variables
var amp_cov  = new Array[$cov]; // here define variables

$('#AmpCovPlot').highcharts({ ... }); // and create chart