Perl变量的执行顺序

昆格尔

我正在从SQLite数据库中读取一些基于表单的值

my $Fruits= $FORM{Fruits}; 
my $FruitsTable =0; 

从数据库中获取值后,应将其存储在名为的变量中my $SelectedFruits

while ( my @column = $sth->fetchrow_array() ) {

    $FruitsTable = 1;

    # Within the table there is a row called Tropical which contains bananas, guaves and oranges. I want to select bananas and guaves
    my $SelectedFruits = print "<tr>
                           <td>$Tropical[0]</td>
                           <td>$Tropical[1]</td>
                     </tr>";
}

如果找到它们,则应打印一个带有我选择的表格(我的问题是打印命令的时间):

if ( $FruitsTable == 1 ) {

    print "<table>
            <thead>
              <tr>
                <th>Bananas</th>
                 <th>Guave</th>
              </tr>
           </thead>
        <tbody>";

    $SelectedFruits;

    print "</tbody></table>";
}

代码退出没有错误。

这里的问题是,$bananas先打印,然后打印表的页眉和页脚,所以表看起来很疯狂。

如何先打印表格的页眉,然后再打印$bananas表格的页脚?

鲍罗丁

必须始终 use strictuse warnings 'all'在顶部每个Perl程序,你写。这个问题对您有很大帮助

问题是

my $bananas = print "<tr>
    <td>$happyBananas[0]</td>
    <td>$hippieBananas[1]</td>
</tr>";

将立即打印表格行,将词法变量设置$bananas为1(的返回码print),然后在循环结束时将其丢弃

您需要这样的东西,它将表的内容累积到非局部变量中$bananas_rows而不是打印它,然后还可以用作标志来确定是否有要打印的表

请注意,我使用了“这里文档”,它会弄乱缩进,但比裸双引号更具可读性

my $bananas_rows; # Don't initialise variables without a reason

while ( my @column = $sth->fetchrow_array() ) {

    $bananas_rows .= <<END_HTML;
<tr>
    <td>$happyBananas[0]</td>
    <td>$hippieBananas[1]</td>
</tr>
END_HTML

}

  if ( $bananas_rows == 1 ) {

   print <<END_HTML;
<table>
  <thead>
    <tr>
      <th>Happy Bananas</th>
      <th>Hippie Bananas</th>
    </tr>
  </thead>
  <tbody>
END_HTML

    print $bananas_rows;

    print "</tbody></table>"; 

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

用perl变量执行系统

来自分类Dev

Perl执行星号回调的顺序?

来自分类Dev

Perl方程中`shift`执行的顺序

来自分类Dev

Perl执行星号回调的顺序?

来自分类Dev

静态块和实例变量的执行顺序

来自分类Dev

构造函数执行顺序/顺序:函数中静态变量(类实例)的依赖初始化

来自分类Dev

将可执行的jar输出存储在Perl中的变量中

来自分类Dev

在对变量perl执行openssh时无法捕获stderr

来自分类Dev

在url中使用GET变量在Perl中执行php脚本

来自分类Dev

Azure YAML-使用变量动态设置阶段/作业执行顺序

来自分类Dev

C ++:使用互斥量和条件变量控制线程执行的顺序

来自分类Dev

Perl阵列顺序

来自分类Dev

事件执行顺序

来自分类Dev

c ++ bufferoverflow执行顺序

来自分类Dev

CUDA线程执行顺序

来自分类Dev

AsParallel()顺序执行

来自分类Dev

Makefile中的执行顺序

来自分类Dev

ExceptionMapper的执行顺序

来自分类Dev

流程执行的顺序

来自分类Dev

var(A)和执行顺序

来自分类Dev

Android runOnUiThread执行顺序

来自分类Dev

Maven插件执行顺序

来自分类Dev

Java语句的执行顺序

来自分类Dev

Cloudformation模板的执行顺序?

来自分类Dev

OpenGL命令的执行顺序

来自分类Dev

执行方法顺序

来自分类Dev

ServletContextListener执行顺序

来自分类Dev

python“ if”与“ and”函数执行顺序

来自分类Dev

Haskell IO执行顺序