質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

CGI

CGI(Common Gateway Interface)とは、Webサーバー上でユーザプログラム動作させる仕組みのこと。また、動かす前提のプログラムをCGIと呼ぶこともあります。HTMLなどの静的な情報に限らず、プログラムの処理結果をベースにした動的情報の提供が可能です。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Q&A

解決済

1回答

2252閲覧

Apache2.4にてperlのHASHエラーについて質問です

dev-beginner

総合スコア25

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

CGI

CGI(Common Gateway Interface)とは、Webサーバー上でユーザプログラム動作させる仕組みのこと。また、動かす前提のプログラムをCGIと呼ぶこともあります。HTMLなどの静的な情報に限らず、プログラムの処理結果をベースにした動的情報の提供が可能です。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

0グッド

0クリップ

投稿2020/08/24 08:02

編集2020/08/24 08:23

質問失礼します。

現在、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 ↑ここの部分でエラーになります。

以下どなたかご教授頂けないでしょうか。
宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/08/24 08:20

Perlを構築中ではなく、あくまでPerlで製造・実装中の話では? このタイトルだと環境構築の話かと誤認されるように思います。 ほぼタグにある内容が羅列されているだけですし、起きている問題そのものを要件・タイトルとされた方が良いかと思います。
dev-beginner

2020/08/24 08:24

お世話になります。 ご指摘頂いてありがとございます。修正致しました。 また内容が分かりづらく申し訳ありません。
KojiDoi

2020/08/24 16:58

$post_returnに取り込まれるデータはどうなってますか。質問を見る限り、これが新旧環境で異なっているのではと考えられますが。
dev-beginner

2020/08/24 22:53

KojiDoi様 ご返信ありがとうございます。 取り込まれるデータに関しては、外部サーバーからxmlデータを取り込む形になりますので、 データ自体は同一だと思われます。 ※念のため確認はしておきます。後で追記させて頂きます。 プログラムは全く一緒でレンタルサーバーの仕様を見る限りapacheのバージョンとperlのバージョンも 同一のようでした。
dev-beginner

2020/08/25 00:26

KojiDoi様 お世話になります。 先ほどご指摘のありましたデータを確認してみたところ、 LWP will support https URLs if the LWP::Protocol::https module is installed. 上記のエラーが出ており、httpsでLWPが使用できる環境を構築できていなかった事が原因のようでした。 おかげ様で無事解決する事ができました。 ご指摘、助言頂いた皆様大変ありがとうございました。
guest

回答1

0

自己解決

https環境にてLWPが使用できないエラーが出ていた為、モジュールをインストールし解決致しました。
ご回答いただいた皆様ありがとうございました。

エラー内容:
LWP will support https URLs if the LWP::Protocol::https module
is installed.

投稿2020/08/25 00:30

dev-beginner

総合スコア25

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問