我有一个小的 perl 脚本,需要评估两个参数的相等性和数据库的少量返回。
my ($firstId, $secondId, $firstReturnedId, $secondReturnedId, $picCount);
my $pics = $dbh->prepare(qq[select id from pictures limit 10]);
$firstId = q->param('firstId');
$secondId = q->param('secondId');
$pics->execute or die;
my $picids = $pics->fetchall_arrayref;
$picCount = scalar(@{$picids});
$firstReturnedId = $picCount > 0 ? shift(@{$picids}) : 0;
$secondReturnedId = $picCount > 1 ? pop(@{$picids}) : $firstReturnedId;
在这里,快速浏览一下我的调试器会发现 $picCount = 1 和 $firstReturnedId = 9020 和 $secondReturnedId = 9020。但是,它们都表示为
ARRAY(0x9e79184)
0 9020
在调试器中,所以当我执行最终检查时
my $result = (($firstId == $firstReturnedId) && ($secondId == $secondReturnedId)) ? 1 : 0;
我得到 $result = 0,这不是我想要的。
我究竟做错了什么?