Perl APIを使用してウェブサイトからデータを抽出しようとしています。私はURIのリストを使ってウェブサイトからデータを取得しています。eval {}文のスキップエラー
最初は問題はif there was no data available for the URI it would dieだったので、その特定のURIをスキップして次の利用可能なURIに移動したいと思っていました。この問題を解決するためにnext unless ....;
を使用しました。
ここで問題は、特定のメソッド(identifiers()
と呼ばれる)をAPIから呼び出して、Webから特定のデータを抽出しようとしていることです。現在、データはURIに対して利用可能ですが、私が探している特定のデータ(識別子)は利用できず、死にます。
私はeval{}
eval {
for $bar ($foo->identifiers()){
#do something
};
}
を使用しようとした私はeval{}
を使用する場合、私はそれがエラーをスキップして先に動くと思いますが、私はわかりません。エラーはInvalid content type in response:text/plain
です。
私はURIを手動でチェックしましたが、識別子はありませんが、残りのデータがあります。これをスキップして次のURIに移動します。どうやってやるの?
あなたの答えに感謝します。さて、私が使用しているAPIはConnotea Perl APIです。そして、私は厳密に使用しました。警告を使用する。そのアドバイスをありがとう。さらに私が得るエラーは、応答で無効なコンテンツタイプです:mycode行41のtext/htmlと私のコード(私のプログラム)の41行は、実際にはWebからのデータです。以前のurisではうまく動作するので、コードにエラーはないことがわかりました。さて、私はこのエラーを修正し、次のuriに移動するにはどうすればよいですか?私のプログラムはこのエラーを抱えています。 – sammed
OK、Connotea PerlはLWP :: UserAgentではありません。 RDF MIMEタイプ、つまりapplication/xmlまたはapplication/rdf + xmlのみを受け入れます。 text/htmlはどちらでもないので、エラーがどこから来るのかが分かります。この場合、サーバーはコンテンツがRDFでない(XMLではないため)ことを示しています。あなたはおそらく、Try :: Tinyまたはこれを守るためにほぼすべてのConnotea Perlコードを評価する必要があります。 –