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

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

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

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

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

1回答

2302閲覧

Amazon Linux 2 で Perl を動かすと HTTP::Lite は http のみ扱います

lin.ming

総合スコア50

Perl

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

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2020/06/05 21:02

編集2020/06/06 01:49

##やりたいこと
GMO クラウドで動いていた Perl ブログラムを Amazon Linux 2 でも動かしたいです。

動かしたいプログラムは、https://teratail.com/questions/146840 です。
##旧環境(正常動作しているサーバの環境)

  • CnetOS 7.x
  • Perl v5.16.3
  • XML::FeedPP 0.95
  • LWP::UserAgent 6.35
  • IO::Socket::SSL 2.068
  • Net::SSLeay 1.85
  • HTTP::Lite 2.44

##新環境(動かしたい環境)

  • Amazon Linux 2
  • Perl v5.16.3
  • XML::FeedPP 0.95
  • LWP::UserAgent 6.44
  • Net::SSLeay 1.88
  • HTTP::Lite 2.44

##起こっている現象
スクリプトを動かすと、HTTP::Lite は http のみ対応しています、と表示され、スクリプトが実行できません。

$ ./rss_pocolog.pl Only http is supported by HTTP::Lite at /usr/local/share/perl5/HTTP/Lite.pm line 145. Loading failed: https://blog.linming.net/feed/ at ./rss_blog.pl line 20.

https に対応したb HTTP::Lite をインストールすればいいと思うのですが、そのパッケージ名がわからないのでインストールできません。

どうかよろしくお願いいたします。

##追記
https://www.itmedia.co.jp/enterprise/articles/0702/22/news014.html
を参考に以下のコードに書き換えました。

perl

1#!/usr/bin/perl 2 3use strict; 4use warnings; 5use Encode; 6use LWP::Simple; 7use XML::RSS; 8use Time::Local; 9 10my $url = 'https://pocolog.bass-world.net/meets/feed/'; 11my $document = LWP::Simple::get($url) or die(); 12my $rss = XML::RSS->new; 13$rss->parse($document); 14for (@{$rss->{items}}){ 15 print encode('UTF-8', $_->{title}), "\n"; 16} 17return;

実行すると

Protocol scheme 'https' is not supported ...propagated at ./rss_meets.pl line 11.

と表示されます。

##追記2

perl

1(中略) 2my $document = LWP::Simple::get($url) or die(); 3my $rss = XML::RSS->new; 4$rss->parse($document); 5for (@{$rss->{items}}){ 6 if($counter > 5){ 7 last; 8 } 9 10 my $date = substr($_->{pubDate}, 0, 10); 11 $date =~ s/\-./g; 12 $line .= "<li>" . $date; 13 $line .= " - "; 14 $line .= "<a href = \"" . $_->{link} . "\""; 15 $line .= $_->{title} . "</a></li>\n"; 16} 17$line .= "</ul>\n";

を実行すると、

Backslash found where operator expected at ./rss_meets.pl line 26, near "</li>\" (Missing operator before ?) String found where operator expected at ./rss_meets.pl line 28, near "$line .= "" (Might be a runaway multi-line "" string starting on line 26) (Missing semicolon on previous line?) String found where operator expected at ./rss_meets.pl line 30, near "open(BLOG, "" (Might be a runaway multi-line "" string starting on line 28) (Missing semicolon on previous line?) Having no space between pattern and following word is deprecated at ./rss_meets.pl line 30. String found where operator expected at ./rss_meets.pl line 30, at end of line (Missing semicolon on previous line?) syntax error at ./rss_meets.pl line 26, near "</li>\" Can't find string terminator '"' anywhere before EOF at ./rss_meets.pl line 30.

と怒られます。ダブルクォートの対応は気をつけたつもりですが、見落としはありますでしょうか?

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

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

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

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

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

guest

回答1

0

ベストアンサー

ちょっと検索したら出てきますが、**もし、FTPやHTTPSといったより以上の機能的な要求があれば、
libwwwperl (LWP)をご覧下さい。**という事です

使えなくなったこの機会に他の言語を試してみてはどうでしょうか?困った時にちょっと検索してサンプル込みので情報出てくるような言語が良いですよ

投稿2020/06/05 21:49

hentaiman

総合スコア6426

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

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

lin.ming

2020/06/05 23:39

ご回答ありがとうございます。 「libwwwperl RSS フィード」でググったのですが、libwwwperl での実装例を見つけられませんでした。 探し方が悪いのだとは思いますが、もしよろしければ libwwwperl での実装例が書いてあるサイトを教えていただけないでしょうか。
lin.ming

2020/06/06 00:55

すみません、ssl_opts の使い方がわかりませんでした。 質問文を追記しました。 ご確認ください。
lin.ming

2020/06/06 01:51 編集

cpan LWP::Protocol::https をインストールしたら、今までのエラーは出なくなりました。 しかしながら、別のエラーが出るようになりました。 質問文の追記2をご確認ください。
hentaiman

2020/06/06 01:55

当初の問題は既に解決しています 必要であれば新たな質問を立て適切なタイトルを書くと良いでしょう
lin.ming

2020/06/06 02:00

ご親切にありがうございます。 今まで付き合っていただいてありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問