什么是Perl Tk :: Methods和Tk :: Submethods语句用法?

时间:2016-05-03 08:54:06

标签: perl

我正在寻找有关Tk小部件源文件中常见的Tk::MethodsTK::Submethods语句的信息。我搜索了网络并堆栈溢出,并没有找到任何有用的信息。

我专门研究Tk::Text小部件实现。 如,

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

该语句是否意味着insert必须是Tk::Text小部件中的方法?

我找不到对insert子程序的任何引用?

我找到Insert(注意大写I),Tk::Methods也以某种方式操纵输入字符串?

1 个答案:

答案 0 :(得分:2)

没有HTMLuseMethods中声明的子例程,许多小部件只是调用它。

子程序的目的可能是从用法或其来源(UTSL)中猜到的:

Tk.pm

它在调用者的命名空间中创建给定的方法,即

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'); 类中创建insert方法,该方法将实现为

MyWidget