質問失礼します。
現在、CentOS7(Apache2.4.6)にてperl5.16のwebサーバー環境を構築中なのですが、
perlのXML処理をする際に以下のエラーが出てしまいます。
■エラー内容:
Can't use string ("") as a HASH ref while "strict refs" in use at /var/www/html/・・・
現在レンタルwebサーバーにて運用中の同一プログラムでは問題無く動作するのですが、
構築中のCentOS7サーバーでは上記のエラーが発生しています。
該当部分のコードは以下の通りです。
use strict; use KCatch qw( source ); use CGI; use Jcode; use encoding 'euc-jp', STDOUT => "utf8"; use LWP::UserAgent; use HTTP::Request::Common qw(POST); use HTML::Template; require './pm/TreePP.pm'; my $req= HTTP::Request->new(POST => $url); $req->header('Content-Type' => 'text/xml'); $req->content($post_body); #$post_return = $ua->request($req)->as_string; $post_return = $ua->request($req)->content; # XMLインスタンスの生成と初期設定~読込み my $tpp = XML::TreePP->new(); $tpp->set( force_array => [qw( REC )] ); $tpp->set( utf8_flag => 1 ); $tpp->set( ignore_error => 1 ); my $myxml = $tpp->parse( "$post_return" ); ↓ここの部分でエラーになります。 my $status = $myxml->{response}->{result}->{status}; #status ↑ここの部分でエラーになります。
以下どなたかご教授頂けないでしょうか。
宜しくお願い致します。
Perlを構築中ではなく、あくまでPerlで製造・実装中の話では?
このタイトルだと環境構築の話かと誤認されるように思います。
ほぼタグにある内容が羅列されているだけですし、起きている問題そのものを要件・タイトルとされた方が良いかと思います。
お世話になります。
ご指摘頂いてありがとございます。修正致しました。
また内容が分かりづらく申し訳ありません。
$post_returnに取り込まれるデータはどうなってますか。質問を見る限り、これが新旧環境で異なっているのではと考えられますが。
KojiDoi様
ご返信ありがとうございます。
取り込まれるデータに関しては、外部サーバーからxmlデータを取り込む形になりますので、
データ自体は同一だと思われます。
※念のため確認はしておきます。後で追記させて頂きます。
プログラムは全く一緒でレンタルサーバーの仕様を見る限りapacheのバージョンとperlのバージョンも
同一のようでした。
KojiDoi様
お世話になります。
先ほどご指摘のありましたデータを確認してみたところ、
LWP will support https URLs if the LWP::Protocol::https module
is installed.
上記のエラーが出ており、httpsでLWPが使用できる環境を構築できていなかった事が原因のようでした。
おかげ様で無事解決する事ができました。
ご指摘、助言頂いた皆様大変ありがとうございました。

回答1件
あなたの回答
tips
プレビュー


