2 つのパラメーターの等価性とデータベースからの小さなリターンを評価する必要がある小さな 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 を取得しますが、これは私が望むものではありません。
私は何を間違っていますか?