問題タブ [perl-context]
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 - File::Slurp がリストを返すべきなのになぜスカラーを返すのですか?
私は File::Slurp モジュールを初めて使いました。最初のテストでは、期待していた結果が得られませんでした。それを理解するのにしばらく時間がかかったので、なぜこの特定の動作が見られたのかに興味があります。
File::Slurp への私の呼び出しは次のようになりました:
ファイルを開くときに「死ぬ」部分を使用することに慣れているため、「死ぬ」部分を含めました。私の @array は、配列の最初の要素にあるファイルの内容全体で常に終了します。最後に「|| die」セクションを取り出したところ、期待どおりに動作し始めました。
以下に例を示します。
なぜ|| ダイが違いを生む?これは、File::Slurp の質問ではなく、Perl の優先順位に関する質問のような気がします。File::Slurp モジュールを調べたところ、問題があれば鳴くように設定されているようです。そのため、適切な方法は File::Slurp が鳴るようにすることだと思います。今、なぜこれらの違いが見られたのか不思議です。
perl - Perl コンパイルの問題
このメソッドのコンパイルに問題があります。
これはエラーメッセージです:
誰でも問題がどこにあるかを見ることができますか?
perl - 「ProgrammingPerl」ブックのスニペットを理解するのを手伝ってください
Tom Christiansen、brian d foy、Larry Wall、JonOrwantによる「ProgrammingPerl」を読みました。私が理解できなかった次のテキストがあります(私が理解していない正確な場所は太字でマークされています):
本当に知りたいのは、どの演算子がどのコンテキストをオペランドに提供するかです。たまたま、構文の説明にLISTが含まれているため、どれがリストコンテキストを提供しているかを簡単に判断できます。他のすべてはスカラーコンテキストを提供します。一般的に、それは非常に直感的です。必要に応じて、疑似関数を使用して、LISTの途中の引数にスカラーコンテキストを強制
scalar
できます 。Perlは、コンテキスト内でリストコンテキストを強制する方法を提供していません。これは、リストコンテキストが必要な場合は、制御関数のLISTによってすでに提供されているためです。
便宜上、次の質問を作成したいと思います。
スニペットのLISTとはどういう意味ですか?
構文の説明とは何ですか?(ある種のドキュメントのようです)
次のテキストはどういう意味ですか:
LISTの途中でスカラーコンテキストを引数に強制することができます
perl - Perlで無効なコンテキストを強制する方法はありますか?
これは、Perl の動作方法と、このようなことでどこまで行けるかについてのオタクの好奇心からだけではないかと思っています。
3 つのコンテキストのそれぞれで異なる動作をするように記述された関数がいくつかあります。
非常に単純な例として、次のコードを使用します。
出力:
が呼び出された後say
に出力する 3 分の 1 を誘発する方法を考えられますか?void
context()
無効なコンテキストはおそらく実際には何も返さない/割り当てていないことを意味するため、これはかなりの矛盾であることを理解しています。しかし、Perl の動作について読んだことから理解できるように、何も返されないということではなく、void コンテキストで実行された後に戻り値が破棄されるということです。
だから、私は疑問に思っています:関数の呼び出しの瞬間に実際にリストまたはスカラーコンテキストにいるときに、リストまたはスカラーコンテキストを強制できるのと同じ方法で無効コンテキストを強制する方法はありますか?