私はこれを見つけた面接の質問を練習していました。私はperldoc -f tie
を見ましたが、それを得ることができませんでした。私は約bless
を知って私のプログラムで使用しています。 tie
は何ですか、どのように関連しており、bless
とは違うのですか?簡単な例があれば分かります。
PS:私はPerlの開発者で、日々の生活の中で使っています。私の関心は、インタビューのためではなく、それをperlのblessとtieの違いは何ですか?
答えて
bless
は、オブジェクトを構成するために使用されます。
tie
は、インターフェイスに変数を提供するコードを許可します。例えば変数に代入しているように見えるかもしれませんが、実際にはサブを呼び出しています。 などの魔法が主に "巧妙な"インターフェースを提供するために使用されます(例えば、%ENV
が環境を変更し、%SIG
がシグナルハンドラを設定し、$!
がerrno
とperror
などのミラーを変更します)。また、既存のコードの有用性を拡張するために使用することもできます(たとえば、ファイルハンドルのようなものを作成すると、ファイルハンドルからの入力を受け取るコードを再利用できます)。
を知るために、私はおそらく、このようなあなたの面接の質問に答えるでしょう:
タイをして、彼らは変数でカスタム動作を関連付けることで、同様の機能を果たす祝福します。違いはフォーカスの点で - tie
は、 '標準'データ構造に新しい動作を追加することについてです。bless
は、「新しい」データ構造を作成しようとしています。
したがって、bless
edデータ構造の可能性はほとんど無制限ですが、作業しているデータ型の基本的な操作には、tie
という制限があります。しかし、tie
ed変数は置き換えのドロップとして機能することができます。ファイルやデータベースに「ハッシュ」をtie
まで拡張すると、コードリビジョンを必要とせずに同じ方法で機能することができます。
この強みも多くの点で弱点ですが、将来のプログラマーがオブジェクトやメソッド呼び出しに直面したときに、何が起こっているのかを理解するためにクラスを探す必要があることを知っています。束縛されたハッシュ(またはスカラー)が「何か特別な」ことをしていることを認識してください。
したがって、診断のためにスタイルtie
を予約しておくことをお勧めします。ハッシュで値が変更されたときにログに記録するのが便利かもしれませんが、予期せぬ方法。
- 1. perl6 blessとnewの違い
- 2. std :: tieとstd :: make_tupleのstd :: ref引数の違いは何ですか?
- 3. PerlパッケージTie :: CSV_File
- 4. "perl -n"と "perl -p"の違いは何ですか?
- 5. Strawberry Perlでは、perl \ libとperl \ site \ libの違いは何ですか?
- 6. Perlでblessオブジェクトを反復する
- 7. perlでは、$ DB :: single = 1と2の違いは何ですか?
- 8. Perlでのハッシュとハッシュリファレンスの違いは何ですか?
- 9. perlのファーストクラスエンティティとセカンドクラスエンティティの違いは何ですか?
- 10. perl -dのxとpの違いは何ですか?
- 11. Perl 5の親と基底の違いは何ですか?
- 12. ($ test)=(@test)との違いは何ですか? $ test = @ test; Perlで?
- 13. Perlで `use base`と@ISAの違いは何ですか?
- 14. CGIからPerlへのsendmailの違いは何ですか?
- 15. "||"の違いは何ですか? Perlでは "or"?
- 16. Perlでのパラメータ入力メカニズムの違いは何ですか?
- 17. perlモジュールのインストールとフォルダ全体のコピーとの違いは何ですか?
- 18. オブジェクト指向Perlのパッケージ、モジュール、クラスの違いは何ですか?
- 19. perl 2つのスクリプトの違いは何ですか
- 20. Perlでは、モジュールのロードにuseとrequireの違いは何ですか?
- 21. Perl CGIとCatalystの違いとパフォーマンスの特徴は何ですか?
- 22. Perlの正規表現で\ 1と$ 1の違いは何ですか?
- 23. Perlでの語彙スコープと動的スコープの違いは何ですか?
- 24. Perlの(、、)と(||、&&)の短絡演算子の違いは何ですか?
- 25. $ @と$の違い! perl
- 26. スクリプトを書くとき、#!/ usr/bin/perlと#!/ usr/bin/env perlの違いは何ですか?
- 27. perlのトークンとは何ですか?
- 28. Perlのバインディングとは何ですか?
- 29. $と$$の違いは何ですか?
- 30. `##`と `hashCode`の違いは何ですか?
このようなインタビューの質問をする場所で働きたいとは思わない。 – simbabque
私はPerlの開発者であり、日々の生活の中でそれを使用しています。ですから私の懸念事項はインタビューではなく、それを知ることです。 –
あなたはhttp://perldoc.perl.org/perltie.htmlも読んでいますか? – simbabque