問題タブ [subroutine]
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 - & を使用して Perl サブルーチンを呼び出す必要があるのはいつですか?
&
Perl サブルーチンの呼び出しに使用すべきではない、と聞いたことがあります。
引数リストがオプションになることは知っていますが、 を使用するのが適切な&
場合と、絶対に使用してはならない場合は何ですか?
また、ここで ? を省略すると、パフォーマンスがどのように向上し&
ますか?
perl - Perlで無効な入力を入力したときに、ユーザーに入力を再入力するように依頼するにはどうすればよいですか?
ユーザーからの入力を求める Perl サブルーチンがあります。入力された入力が有効な入力であるかどうか、そのサブルーチン自体の内部でチェックを実行します。
そうでない場合は、サブルーチンをもう一度呼び出して、今度はユーザーが有効な入力を入力できるようにします。
私のサブルーチンは次のとおりです。
では、これでサブルーチンを再帰する方法は?
perl - How do I properly invoke a subroutine that takes 2 subroutine references?
Imagine this subroutine:
I know I can call it like: test(\&sub1,\&sub2)
, but how can I call it like:
If I say that the subroutine takes only one &
, than sending a block will work. I don't know how to make it work with 2.
If I try to run it like that, I get:
EDIT: is there no way of invoking without sub
?
perl - Perlサブルーチンでラベルを使用することは悪い習慣と見なされていますか?
Perlサブルーチン内でラベルを使用したり、複数のループから抜け出したり、更新された変数で一部の部分をやり直したりするのに非常に役立つことがわかりました。このコーディングスタイルはコミュニティからどのように見られていますか?サブルーチン内でラベルを使用することは眉をひそめていますか?
windows - Windows シェル スクリプト: サブルーチンで動作する文字列置換を作成できません
親愛なる専門家の皆さん、こんにちは!
問題に対処する方法についてアドバイスをお願いします。
このコードは、「ExtractedLinks.txt」に書き込む代わりに画面に表示されます。ここで何が問題なのですか?
perl - Perl コードで「プロトタイプをチェックするのが早すぎます」という警告が表示されるのはなぜですか?
次のような Perl ファイルがあります。
つまり、f1
定義される前に呼び出されます。そのため、Perl は次のような警告をスローします: "f1 の呼び出しが早すぎてプロトタイプをチェックできません"。ただし、 の場合も同様ですf2
。唯一の違いは、別のサブルーチン内から呼び出されることです。に対して警告をスローしませんf2
。なんで?
この問題を解決する最善の方法は何ですか?
- 呼び出される前にサブルーチンを宣言する
- 次のようにサブを呼び出します。
&f1();
perl - Perl-ハッシュキーと値のペアの問題としてサブルーチンに引数を渡す
以下に示すように、2つの参照を引数としてサブルーチン(buildRanges)にハッシュキーと値のペアとして渡す必要があります
例:
私の質問は
1です。上記のサブルーチン呼び出しの構文は正しいですか?
2. VALUESとREF_RANGESとは何ですか?
率直に言って、私はサブルーチンコールを理解できませんでしたが、そのコールのみを使用するように言われました。
ありがとう。
KK
perl - `do` 関数を使用しているときに Perl ライブラリをロードできないのはなぜですか?
Perl は初めてで、古い Perl Web サイトを更新しています。すべての.pl
ファイルの先頭に次の行があるようです。
そこで、このファイルを使用して、グローバルに使用するサブルーチンにタグを付けることができると考えました。
株式会社ファンク
index.pl
ただし、次のエラーが表示されます。
両方のファイルは同じディレクトリにありfunc.inc
、Web サイト全体で使用されているサブのトーンが既に存在します。ただし、スクリプトは Linux 運用環境では機能しますが、Windows 7 開発環境では機能しません (私は ActivePerl を使用しています)。
アップデート:
ファイルが含まれていないようです。ファイルが絶対パスを使用して含まれている場合、サブは機能します...
...そのため、ローカルの開発環境では相対パスが機能しないように見えますが、運用環境では機能します。しかし、私の開発マシンの絶対パスはライブサーバーでは機能しないため、これは私にとっては良くありません。
do
Windows 7 開発マシンで相対パスを使用して作業するにはどうすればよいですか?
更新 2:
Perl-T
スイッチを使用していました。残念ながら、これは「。」を削除します。@INC からのパスなので、 に相対パスを使用できなくなりますdo
。このスイッチを削除したところ、古いコードが機能するようになりました。これが良い習慣ではないことは承知していますが、残念ながら古いコードで作業しているため、仕方がないようです。
perl - 引数のない Perl サブルーチンは、marine() または Marine として呼び出す必要がありますか?
以下のサンプル コードによると、サブルーチンを呼び出すには と の 2 つのスタイルがありsubname
ますsubname()
。
呼び出しに引数がない場合、どちらがより適切な選択&marine();
ですか?&marine;
perl - eval を使用して定義された Perl サブルーチンにパラメーターを渡すにはどうすればよいですか?
アプリに必要な他の構成値を検証するために後で使用されるタイプを定義するために、構成ファイル (YAML) を使用しています。
アイデアは、eval
各タイプ定義に対して、それらをハッシュにスローしてから、構成データを検証するために呼び出すことです (以下は、わかりやすくするための概略図です)。
問題は、%type_sub のサブルーチンがパラメーターを受け入れないように見えることです。上記の場合、最初の print ステートメントは出力-1
し、2 番目の出力は次のようになります。
これは私が期待するものではありませんが、サブルーチンが呼び出されています。
私は何を間違っていますか?
編集:私はずさんでしたが、今ではすべて正常に動作しています。フリードのおかげです。