Ellinikonblue.com Weblog で、PA-API v5 に対応するに当たって、 最初、WSL 上の Ubuntu (18.04 LTS) で、 テスト用のサブルーチンを作り込んだのですが、 なんとか Ubuntu で、応答がもらえるプログラムができて、 今度は同じそれを CentOS 7 で動かしてみたところ、 エラーしか返ってこない状況に悩まされ続けました。

 モジュールに不足があるわけでもなく、最後は Perl のバージョンまで疑ったのですが、 結論、LWP::Protocol::https のバージョンアップを行っただけで、 Ubuntu で通ったプログラムがそのまま、 CentOS でも動きました。

 LWP::Protocol::https のバージョンの差(このバージョンアップに紐付いていくつかのモジュールも 自動的にバージョンアップされますが…)で、何が起こっていたのかまでは正確に言及はできませんが、
perl -MIO::Socket::SSL=debug3 test.pl
として、実行したときの応答が明らかに違うので、原因はこのモジュールで間違いないと思います。

 CentOS は yum でインストールできる 標準リポジトリから perl 本体もモジュールも拾ってきていました。
 いざ、モジュールのバージョンアップとなった際、昨今は cpanm と言う便利なコマンドがあって、 これを使って LWP::Protocol::https をインストールすると、 依存関係も含めて必要なモジュールはすべて拾ってきてくれて、 かつ CentOS の 標準リポジトリからインストールしたモジュールより優先して使用してくれるので、 実質、モジュールのアップデートを行えば perl のバージョンアップなどせずともすべて解決しました。

 このあたりの perl の環境整備や cpanm については、別途、 今後のことを含めてもう少し詳しめにまとめておこうと思います。