相关疑难解决方法(0)

拦截Perl中不存在的方法调用

我试图在一些子类中拦截不存在的方法调用.是的,我知道AUTOLOAD,但是(对于方法)它首先尝试调用parent :: method,然后调用UNIVERSAL :: method然后才调用:: AUTOLOAD.但我首先需要调用(例如):: AUTOLOAD.因为我想知道子类尝试从父调用什么方法.

请给我一些建议.

perl autoload

7
推荐指数
1
解决办法
444
查看次数

如何在Perl中执行内省?

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

my ($self) = @_;
Run Code Online (Sandbox Code Playgroud)

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

我有Java/OOP背景.如果您的解释可以遵循Java域,那么我将更容易理解.

oop perl

4
推荐指数
2
解决办法
1496
查看次数

Python目录中的Python等价物?

dirPython 2.7.x中的命令列出了模块中所有可访问的"符号".在Perl 5.x中是否有一个等价物来列出包中所有可访问的"符号"?

python perl

4
推荐指数
1
解决办法
351
查看次数

高级perl语法 - Mojo :: DOM

我正在尝试理解一些高级(对我来说)perl语法,用于在本教程后使用DOM进行html解析:

say "div days:";
say $_->text for $dom->find('div.days')->each;

say "\nspan hours:";
say $_->text for $dom->find('span.hours')->each;
Run Code Online (Sandbox Code Playgroud)

这个语法是什么意思?这是什么样的循环?建筑经典看起来像这样:for(i=0;i<10;i++){ code }不:{code} for (some_condition)

在这种情况下,"each"关键字的含义是什么?它是否与eachPerl内置函数有共同之处,或者它是否特定于Mojo :: DOM?我想如果each是在Mojo :: Dom下,应该在Mojo :: DOM主页上提及它.但是我没有each他们网站方法部分找到任何提及,所以它必须是Perl的内置函数.但是,这个内置each函数有一个完全不同的语法 - 这怎么可能?

教程页面的另一个例子

say "Open Times:";
say for $dom->find('div.openTime')
            ->map(sub{$_->children->each})
            ->map(sub{$_->text})
            ->each;
Run Code Online (Sandbox Code Playgroud)

与上述mapsub方法相同的问题.

  • 那些"Perlish"代码可以用更"C风​​格"的方式重写,以便我能理解吗?
  • 最重要的是:如何列出所有方法的参数和返回Mojo :: DOM中包含的值?它必须以某种方式完成,因为我读到即使对于Perl,也有IDE具有intellisense(自动完成),因此这个IDE必须知道方法返回值类型等.

syntax perl dom html-parsing mojolicious

3
推荐指数
2
解决办法
1453
查看次数

标签 统计

perl ×4

autoload ×1

dom ×1

html-parsing ×1

mojolicious ×1

oop ×1

python ×1

syntax ×1