我的退出条件有什么问题

我有一个脚本parsing一个XLSX文件,并将其转换为其他格式。

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

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

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

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

任何人都可以给我一个提示或解释什么我做错了,请吗?

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

expression方式

 $worksheet -> get_cell($indexRow, 0) 

没有定义。 所以,没有属性可以被提取。

我的build议是以这种方式重新编码(但是每个人都有自己的build议)(考虑第二种情况下的空间!):

 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 } } 

空string是假的,所以! 相当于“string正在持有文本”。

希望能帮助到你。