Perlサブルーチン内のラベルを使用して、複数のループから壊れたり、更新された変数でいくつかの部分をやり直したりするのは非常に便利です。このコーディングスタイルはコミュニティによってどのように見られますか?サブルーチン内のラベルを使用しているのですか?Perlサブルーチンのラベルを使用するのが悪いと思われますか?
9
A
答えて
17
いいえ。あなたの記述目的とまったく同じですが、私はあまり使用されない言語の素晴らしい機能だと考えています。
一方、私は自分自身でラベルの使用を熟考すると、自分のコードが少しのリファクタリングを必要としているかどうか疑問に思います。
12
next
、last
、redo
のラベルを使用するのは問題ありませんが、コード構造が最適かどうかを検討するためには一時停止する必要があります。私の経験では、これらの演算子を囲むループ以外で使用することはめったにありません(つまり、ラベルを使用する必要はありません)。
goto LABEL
を使用することは強くお勧めします。
8
通常、goto LABEL
を使用する理由はありません。例えば
:
my $i = 10;
Label:
# ...
goto Label if --$i;
がより良いように記述されています:
my $i = 10;
{
# ...
redo if --$i;
}
私はラベルの使用を考えることができる唯一の理由は、複数のループから抜け出すことですか外側のループを続行する。多くの場合
my $i = 10;
OUTER: while(1){
# ...
while(1){
# ...
last OUTER unless --$i;
}
}
my $i = 10;
OUTER: {
# ...
{
# ...
redo OUTER if --$i;
}
}
関連する問題
- 1. サブルーチンがPerlの
- 2. ()はPerlサブルーチンの終わりに何を意味しますか?
- 3. Perlサブルーチンのドキュメント
- 4. perlサブルーチンとdbiエラーのトラブルシューティング
- 5. Perlでサブルーチンの引数としてハッシュを使用するにはどうすればよいですか?
- 6. Perlでサブルーチンの引数としてハッシュを使用するにはどうすればよいですか?
- 7. PHPでクラスメソッド内のスーパーグローバルにアクセスするのが悪いと思いますか?
- 8. JavaScriptで名前空間が悪いと思われるのはなぜですか?
- 9. コントロールがロックされていると思われます
- 10. jqueryでのjsonpの使用は常に失敗すると思われます
- 11. HttpWebResponseのテキストがJSONではないと思われます
- 12. IIS 6のセッション状態が疑わしいと思われる
- 13. Cocoアプリケーションで外部perlを使用するのは悪い方法ですか?
- 14. Rubyクラス、インスタンスマーカが間違っていると思われます。
- 15. なぜPerlは-1が真だと思いますか?
- 16. gccのインラインアセンブリでラベルを使用すると奇妙な悪いアクセスエラーが発生します
- 17. $$&perlでサブルーチンをプロトタイプ化することは可能ですか?
- 18. Java - ラベルの悪い習慣を編集するのに、このクラスを使用していますか?
- 19. Module#module_functionの使用が悪いと考えられていますか?
- 20. PostScriptが「end end」で終わるとは思いますか?
- 21. Perl CGI onclickはperlサブルーチンを呼び出します
- 22. Perlが配列の内部にあるサブルーチンを呼び出す
- 23. perl内のあるサブルーチンから別のサブルーチンへの値の受け渡し
- 24. もう生きていないと思われるオープンソースを使用していますか?
- 25. :Clojureのdata.jsonが動作していないと思われる
- 26. Perlサブルーチンに引数を渡す際に、データコピーのパフォーマンスが低下しますか?
- 27. ハスケルでXORのどちらが良いと思われますか
- 28. Cudaグリッドのサイズの制限が低いと思われる
- 29. と思われるマクロ
- 30. ビジュアルスタジオヒープエラーと思われる
、私はコードがラベルの使用と明確だと思います。もはやそれらを使用しないようにコードを書き換えることは、通常、多くの行の余分なコードにつながります。 – Geo
時々そうですが、時にはそうではありません。私はいつも読んで理解しやすいコードを求めています。時にはそれがラベルを使用するコードです。 – innaM
Perlベストプラクティスはラベルを優先しています。私はすべてのPBPに同意しませんが、これは良いアドバイスの1つだと思います。他に何も書かれていなければ、それらは文書として役立つ – hobbs