問題タブ [autodie]
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.
perl - 自動ダイに不利な点はありますか?
StackOverflowの人々がautodieの使用を宣伝しているのを時々目にします。しかし、ここやネットの他の場所のコードでは、autodieはあまり見られません。いくつかの欠点はありますか?自動ダイを使用すると何かが失われますか?(オートダイを使用すると、甘やかされてしまうという考えがあります)
perl - autodie-pragma はエンコーディングに影響を与えますか?
「オートダイ」の後に別の出力を取得するのはなぜですか?
perl - autodie を非ビルトインで使用するには?
autodie のドキュメントには、デフォルトで処理できる組み込み関数以外の関数に使用できることが示唆されていますが、それを行う方法の明確な例はありません。
具体的には、Imager モジュールに使用したいと考えています。or die Imager|$image->errstr;
その多くの関数とメソッドは失敗する可能性があり、それが私のコードがいたるところにフレーズで散らばることを意味しないことを望んでいます.
もちろん、autodie を使用してそれを達成する以外の方法があれば、それにも興味があります。
perl - IO::File から例外を取得していますか?
IO::File、IO::Socket::INET モジュールには、perl の組み込み IO 関数を直接使用するよりもいくつかの利点があります。たとえば、ハンドルをフラッシュするための明示的な構文があります。
ただし、組み込みの IO 関数よりもいくつかの欠点があるようです。たとえば、autodie モジュールと組み合わせて失敗時に例外を発生させることはできないため、組み込み関数を使用した場合よりも、失敗を処理するために全体的に多くのボイラープレート コードを作成する必要があることに気付きました。
2 つを結合する方法、または結合された機能を持つ他のモジュールを結合する方法はありますか? File::Slurp などの一部の目的が限定された IO モジュールでは、より柔軟なエラー処理が可能であることに気付きました。
私はモジュール コードを書いていますが、理想的には、ソリューションは perl 5.10.0 までずっと機能するはずです。
perl - PERL Net::SFTP::Foreign autodie=>0 の次に 1
いくつかの sftp サーバーで 1 日に 1 回、いくつかのファイルを自動的に取得するスクリプトを作成しています。問題は、この sftp サーバーの信頼性が低く、クライアントがセッションを開くまでに数回再試行する必要がある場合があることです。私はさまざまな理由で Net::SFTP::Foreign を選択します (特に、システムからネイティブの ssh コマンドを使用するため)。
あきらめる前に、最初の sftp セッションを 3 回再試行するためにループを作成しました。
私の問題: autodie=1 を維持したいのは、コードの後半で使用されるすべてのメソッドの回復不能なエラーを自動的に処理するためです。しかし、autodie=1 は、セッションの開始 (Net::SFTP::Foreign->new) 中のエラーをトラップできないため、再試行部分は役に立ちません。
これが私が書いたコードの一部です。再試行部分を機能させるために autodie は 0 に設定されています (ただし、autodie=1 が必要です)。再試行部分が実際に機能するように autodie=>0 で sftp 接続を開き、この値を autodie=>1 で変更して、回復不可能なエラーを自動処理することは可能ですか?
どんな助けでも大歓迎です:)
perl - Perl : 「main::IN」という名前は一度しか使用されていませんが、実際には使用されています
ファイルを読み込む短い perl スクリプトを書いています。参照tmp.txt
:
私のperlプログラムconvert.pl
は次のとおりです。
以下を出力します。
を使っていたので、警告IN
がわかりません。Name "main::IN" used...
なぜそれは不平を言っているのですか?