我的退出条件有什么问题

时间:2014-08-14 08:59:38

标签: excel perl

我有一个解析XLSX文档并以其他格式转换它的脚本。

在XLSX文件为红色的部分,我有退出条件:

do 
   {
    ...
    ...
    ...
   }                      
until (uc(trim($worksheet -> get_cell($indexRow, 0) -> value())) eq "");

不幸的是,当我执行脚本时,我收到此错误:

  

无法调用方法"值"在myfilename.pl第94行的未定义值

有人可以给我一个提示或解释我做错了什么吗?

顺便说一下,我是Perl编程的初学者。

1 个答案:

答案 0 :(得分:4)

表达式

$worksheet -> get_cell($indexRow, 0)

未定义。因此,无法提取任何属性。

我的建议是以这种方式重新编码代码(但每个人都有自己的建议)(在第二个条件中考虑空格!):

while (1) # 1 is true
   {
    ...
    ...
    ...
    # suppose $indexrow has been calculated in the loop.
    if ( ! $worksheet -> get_cell($indexRow, 0) ) {
        # do something (cell is not defined)
        # Cell is empty? (??????? 7 ?)
    } 
    elsif ( ! trim( $worksheet->get_cell($indexRow,0)->value() ) ) {
        last;  #escape this loop
    }
   }                      

空字符串为false,因此!等同于“字符串保存文本”。

希望它有所帮助。