perl - 如何在 Perl 中执行自省(introspection)?

标签 perl oop

在 Perl OOP 中,如何转储此类及其父类中的所有方法/字段。

my ($self) = @_;

我看到了很多上面的构造函数。那么,@_ 是什么? ?

我有 Java/OOP 背景。如果您的解释可以遵循Java领域,我会更容易理解。

最佳答案

  • 什么是@_ ?见 perldoc -v @_
  • perldoc perlobj

  • mjd has an interesting article on introspection in Perl .

    此外,How do I list available methods on a given object or package in Perl?回答你的部分问题。

    我对该问题的首选答案是 Class::Inspector :
    #!/usr/bin/env perl
    
    use strict; use warnings;
    
    use Class::Inspector;
    use HTML::TokeParser::Simple;
    
    my $methods = Class::Inspector->methods(
        'HTML::TokeParser::Simple', 'full', 'public'
    );
    
    print "Methods:\n";
    print "$_\n" for @$methods;
    
    print "Superclasses\n";
    use Class::ISA;
    print join(", ", Class::ISA::super_path('HTML::TokeParser::Simple')), "\n";
    

    关于perl - 如何在 Perl 中执行自省(introspection)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10142530/

    相关文章:

    c# - 如何停止并确保 OOP 代码正常工作?

    windows - 如何判断我的 Perl 脚本是否在 Windows 下运行?

    perl - 如何将 Perl 的单行代码转换为完整的脚本?

    perl - 计算图中子图的出现次数

    oop - 覆盖方法调用运算符或其他一些方法来捕获方法名称解析错误

    c++ - 重载 [] 运算符

    perl - 如何在 Perl 中获得回溯?

    arrays - 搜索数组中连续元素的索引

    java - 关联关系和依赖关系有什么区别?

    perl - 这两个语句在 perl 中总是相同的吗?