問題タブ [carp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
9838 参照

perl - Perl で warn の代わりに Carp を使用する必要があるのはなぜですか?

人々は警告の代わりにコイの例を私に与え続けます。なんで?コイが警告より優れている理由は何ですか?

0 投票する
4 に答える
3652 参照

perl - Perl アプリケーションですべての「die」を「confess」に置き換えるにはどうすればよいですか?

私は大規模な Perl アプリケーションで作業しており、'die' が呼び出されるたびにスタック トレースを取得したいと考えています。私はCarp モジュールを認識していますが、「die」のすべてのインスタンスを「confess」で検索/置換したくないと考えています。さらに、Perl モジュールまたは Perl インタープリター自体のエラーの完全なスタック トレースが必要ですが、Carp を使用するようにそれらを変更することはできません。

それで、「自白」のように動作するように、実行時に「死ぬ」関数を変更する方法はありますか? または、「ダイ」から完全なスタック トレースをスローする Perl インタープリター設定はありますか?

0 投票する
1 に答える
49 参照

php - 鯉を使った検索/交換

私はcarpfree3.6.4を使用して、いくつかのワードプレスrssフィードからのコンテンツをWebページに表示しますが、常にエンコードエラーがあります(ブログユーザーがカーリークォートを使用するたびにダイヤモンドの質問(U + DDDF)が表示され、すべての疑問符の後にスペースが続きます)。str_replace('U + DDDF'、''、$ carpoutput)を実行できるように、出力を探してcarp.phpにアクセスしましたが、これを実行すると、何も変更できません。ほとんどの場合、ダイヤモンドは私がそこに欲しいものを置き換えるものですが、完全に無関係なので、それらを''に置き換えるだけでよいと思いました。

彼らのドキュメントは私が理解するのが本当に難しいです、それを使用した経験のある人はこれを達成する方法を知っていますか?前もって感謝します。

0 投票する
2 に答える
890 参照

perl - Carp::carp は Perl で何をしますか?

carpサンプル Perl コードを使用してサブルーチンについて説明してもらえますか?

0 投票する
2 に答える
569 参照

perl - Perlで特定のコイをクロークに変更するにはどうすればよいですか?

私は鯉を捕まえようとしました-警告:

eval {}を使用しましたが、機能しませんでした。evalドキュメントを調べたところ、eval構文エラー、実行時エラー、または実行されたダイステートメントのみが検出されることがわかりました。

どうすれば鯉の警告をキャッチできますか?

0 投票する
3 に答える
422 参照

perl - -MCarp=verbose を受け入れると証明されないのはなぜですか?

このテスト スクリプトを実行しました。

コマンドラインを使用するprove -MCarp=verbose -v foo.plと、次のエラーが発生しました。

を使用して実行してperl -MCarp=verbose foo.plも問題ありません。prove詳細なCarpを拒否する原因は何ですか? croakにグローバルに置き換えcroakられていない場合、テストから完全なコールスタックを取得するにはどうすればよいconfessですか?

0 投票する
2 に答える
29993 参照

perl - Carp / Croak、Cluck / Confess、およびverboseオプションの違いは何ですか?

私は一般的に自分でロールしたので、Carpをあまり使用していません。ただし、コアモジュールを維持するという精神で、現在はそれを使用しています。ただし、warn/dieよりもかろうじて優れているようです。

さらに、cluck / confess / verboseは何をしますか?この短いスクリプトを実行して、出力が次のようになっていることを確認しました(Carpドキュメントでは実行されないため)。(ランダムな文字列を除いて)どの実行でもまったく同じように見えます。

更新:スクリプトをパッケージ名で更新しましたが、違いがあります。ただし、Carpはログ情報に関してはまだ非常に基本的であるように思われ、Web出力をサポートしていません。CGI :: Carp、Log :: Output、Log::Log4Perlのような他のものを見てみようと思います。

0 投票する
1 に答える
618 参照

perl - MooseBUILDメソッドからの鳴き声

BUILDメソッドが失敗した場合にクラスを爆破させたい。ただし、croakエラーの処理に使用する場合、エラーはClass/MOP/Method.pm呼び出し元のコードではなく、から報告されます。(つまり、オブジェクトをインスタンス化する呼び出し元です。)IOWcroakは、呼び出しツリーを十分に吠えていません。

見よ:

Test結果をインスタンス化すると、次のようになります。

Carp.pm避けるべきパッケージを知るために呼び出されるパッケージ変数に注意を払うことになって@CARP_NOTいますが、リストの1つの項目にしか注意を払っていないようです。たとえば、これを自分のTest.pm:に追加すると

その結果は次のとおりです。

だから私はそれを配列にも追加する必要がありますよね?

その後、結果はまだです:

Moose::Object影響を受けていないようです。

私はしばらくの間これに頭をぶつけてきました、そしてそれを台無しにしているものを理解することができないようです。

ありがとう。

0 投票する
2 に答える
466 参照

perl - PerlCarpモジュールの無限ループ

例外をキャッチし、メッセージをログに記録してから、スタックトレースを取得するために呼び出すコードがいくつかありますCarp::longmess

したがって、私たちが行っていることの簡略化されたビューは次のとおりです。

logwrite関数は基本的に次のとおりです。

しかし、私が見ているログには次のようなものがあります。

そして、モジュールからの警告のシーケンスはCarp/Heavy.pm、何度も何度も何度も繰り返され、logifleを吹き飛ばします。だから私たちは最終的にそれを殺します。これらの警告は、への呼び出しによってトリガーされているように見えますCarp::longmess。ここで他に興味深いのは、$@変数がちょうどのように見えることatです。これはatdieによって追加されたものですが、実際のエラーメッセージや行番号はありません。

誰かがこれを以前に見たことがありますか、またはCarpパッケージで何が起こっているのか考えていますか?これはまれですが、過去1か月ほどで数回発生しており、毎日何百ものこれらのジョブが実行されています。