2016-05-03 7 views
0

私は、Tkウィジェットのソースファイルによく見られるTk::MethodsTK::Submethodsに関する情報を探しています。私は、Webを検索し、オーバーフローをスタックし、有用な情報が見つかりませんでした。Perl Tk :: MethodsとTk :: Submethodsの使い方は何ですか?

具体的には、Tk::Textウィジェットの実装を調べています。 は、例えば、

Tk::Methods (... 'insert'...)

は、その文はinsertTk::Textウィジェット内のメソッドである必要がありますわけではないでしょうか?

insertサブルーチンへの参照が見つかりませんでしたか?

私はInsert(大文字はIになります)を見つけました。Tk::Methods何らかの方法で入力文字列を操作していますか?

答えて

2

useはありません。 MethodsTk.pmで宣言されたサブルーチンであり、多くのウィジェットが呼び出すだけです。

サブルーチンの目的は、使用から、またはそのソース(UTSL)から推測されることがあります。

sub Methods 
{ 
my ($package) = caller; 
no strict 'refs'; 
foreach my $meth (@_) 
    { 
    my $name = $meth; 
    *{$package."::$meth"} = sub { shift->WidgetMethod($name,@_) }; 
    } 
} 

それは、発信者の名前空間内の指定されたメソッドを作成し、すなわち

package MyWidget; 
Tk::Methods('insert'); 

MyWidgetクラスのinsertメソッドを作成します。具体的には、

shift->WidgetMethod('insert', @_) 
+0

なぜそれを使用しないと宣言するのですか? – NirMH

+0

@NirMH:使用がありますが、[使用]はありません(http://p3rl.org/use)。 – choroba

+0

がコードスニペットを修正しました。このサブルーチンの使用法は何ですか? – NirMH

関連する問題