• ベストアンサー

以下の文を書き足したらエラーになりました。

文法というか書き方がそもそもおかしいですか? if($param{'query_price2'} and $param{'query_price1'}){ unless(($param{'query_price1'} <= $datas[32]) && ($datas[32] <= $param{'query_price2'} <= $datas[33])){ next; } unless(($datas[33] >= $param{'query_price1'} >= $datas[32]) && ($param{'query_price2'} >= $datas[33])){ next; } } elsif($param{'query_price2'} or $param{'query_price1'}){ if(!$param{'query_price2'}){ if($param{'query_price1'} > $datas[32]){ next; } } if(!$param{'query_price1'}){ if($param{'query_price2'} < $datas[32]){ next; } } }

質問者が選んだベストアンサー

  • ベストアンサー
  • Gotthold
  • ベストアンサー率47% (396/832)
回答No.2

Perlでは、<=のような比較演算子は結合しないので、 A <= B <= C のような書き方はできないのだと思います。 (A <= B) <= C と書くとエラーは出なくなりますが、 A <= Bの結果(真または偽)とCを<=で比較したいなんて事は通常無いと思います。

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

単に「エラーになる」ですますんじゃなくって, ちゃんとエラーメッセージくらい書こうよ.... ちなみに「$datas[32] <= $param{'query_price2'} <= $datas[33]」がどのように解釈されるかは当然理解できてますよね?

関連するQ&A