Perl:组合数组,添加元素和转换

时间:2016-04-21 15:31:30

标签: perl

我是一个Perl新手,尽管我设法将一些代码组合在一起,但是当我需要执行数组操作时,我通常会放慢速度 - 显然还不够熟悉。目前,我正在编写一个查询mySQL数据库的Perl代码,然后使用LaTeX :: Table包生成一个LaTeX表。在这个过程中我需要操作数组,我正在寻求建议,以提高我对在Perl中处理数组的理解。

在代码的第一部分中,我使用子例程查询mySQL数据库:

public void updateData(String parameters) {
    try {
        this.stmt.executeUpdate(parameters);
        this.setChanged();
        this.notifyObservers();        
    } catch (SQLException e) {
        JOptionPane.showMessageDialog(null, e.getMessage());
    }
}

我有每月和每周查询的模拟代码。上面的输出看起来如下:

.my_bg_img  {
   background-image: url('./your_image.jpg');  
  background-size: cover; 
  background-repeat: no-repeat;  
  height: 100%;
  widht: auto;
}   

在这个阶段,我希望为数组添加和元素以获得以下内容:

my @stashYear = queryRecent($Ticker,'YEAR');
print "Last Year:\t";
### Dump the stash contents!
foreach my $array_ref ( @stashYear ) {
    print "@$array_ref\n";
}

我尝试了各种各样的方法,但直到现在我都没有成功。我一直玩弄不合时宜,但我的尝试都没有产生令人满意的结果。

在代码的其余部分中,我组合了数组:

bash-3.2$ ./test.pl DG.PA
Last Year:      2015 45.935 62.6 43.4 59.14 256
Last Month:     2016-03 63.9 66.69 62.36 65.47 21
Last Week:      2016-15 64.96 66.24 64 65.95 5 
bash-3.2$

然后我将它传递给LaTeX :: Table以生成所需的表:

Year 2015 45.935 62.6 43.4 59.14 256
Month 2016-03 63.9 66.69 62.36 65.47 21
Week 2016-15 64.96 66.24 64 65.95 5

获得预期的输出:

#Combine Year, Month and Week Array into one
my @stashRecent = @stashYear;
push (@stashRecent, @stashMonth);
push (@stashRecent, @stashWeek);

#Convert Array in Latex::Table compatible format
my $recentData = \@stashRecent;

尽管我设法将数组合并并将它们转换为LaTeX :: Table所需的格式,但我没有成功添加元素(年,月和周),如上所述。

任何反馈,以促使我前进和提高我的知识将受到高度赞赏。与此同时,我感谢所有想出这个想法的人,并帮助新手变得不那么新手。

1 个答案:

答案 0 :(得分:1)

我不确定我是否完全理解了这个问题,但似乎以下内容应该可以完成这项工作:

unshift @stashYear,  'Year';
unshift @stashMonth, 'Month';
unshift @stashWeek,  'Week';