不能使用字符串(" 0")作为ARRAY参考,而#34; strict refs"正在使用

时间:2014-08-06 06:23:07

标签: perl catalyst

我的代码是:

my $mortgageValue = $c->forward('/_asset/_real_estate/_mortgage/browse/vw_asset_real_estate_mortgage', ["data", "getRowHash", "*", "asset_real_estate_id='".$realEstateId."' AND active='1'", "", "1"]);
if (@{$mortgageValue}) { # is the line that shows the error
        $amortizationPeriodDetails = $mortgageValue->{amortization_period}||"";
}

我认为查询返回null,因为条件没有值,但我该如何检查?

2 个答案:

答案 0 :(得分:2)

理想情况下,forward方法会返回undef;有时返回0的方法,有时更难使用arrayref。但如果不这样做,你可以这样做:

if ( @{ $mortgageValue || [] } ) {

if ( $mortgageValue && @$mortgageValue ) {

答案 1 :(得分:0)

$mortgageValue不是数组引用。所以你不能取消引用它。看起来$mortgageValue是一个标量。