空っぽが返ってくる?
LWP::Simpleのget()とかでhttpsから始まるURLを取得しようとすると、エラーも何もなく、空っぽが返ってきてしまう場合があります。
これは、そもそもSSL対応のモジュールが入ってない可能性があります。
#!/usr/bin/perl --
use strict;
use LWP::Simple;
print get('https://www.google.co.jp/'); # 何も出力されない・・!
尚、get()直後にprint $@するとProtocol scheme 'https' is not supportedみたいなエラーメッセージが確認できるかもしれません。
つまり、LWP::SimpleでSSLがサポートされてない、ということです。
httpsもサポートしてよ!
基本的にサーバ側に必要モジュールをインストールすると、上記スクリプトで正常に取得できるようになります。
yum install perl-Net-SSLeay yum install perl-Crypt-SSLeay yum install perl-IO-Socket-SSL
または、cpanmが使える環境ならこれでもOK↓
cpanm Net::SSLeay cpanm Crypt::SSLeay cpanm IO::Socket::SSL
但し、yumパッケージをインストールしてもうまくいかない場合があります。これは LWP::Protocol::httpsモジュールが入っていない可能性がありますので、そういう時はcpanmとかcpanで別途インストールしてください。
cpanm LWP::Protocol::https
それでもダメっぽい!
うーん。もしかしてOpenSSLのパッケージが足りてないのかもしれません。以下yumコマンドを実行してみてください。
また、念のためアップデートしておくと吉です。
yum install openssl yum install openssl-devel yum update openssl*
というか、上記のopenssl-develパッケージが入っていないと、そもそもcpanmがコケるみたいです。
お試しあれ。