gpt4 book ai didi

perl - 如何编写 Perl 脚本来提取 Perl 包中每个子程序的源代码?

转载 作者:行者123 更新时间:2023-12-04 13:03:49 26 4
gpt4 key购买 nike

给定一个 Perl 包 Foo.pm,例如

package Foo;

use strict;

sub bar {
# some code here
}

sub baz {
# more code here
}

1;

我如何编写脚本来提取每个子的文本源代码,从而产生一个散列:
$VAR1 = {
'bar' => 'sub bar {
# some code here
}',
'baz' => 'sub baz {
# more code here
}'
};

我希望文本与包中出现的完全一样,空格和所有内容。

谢谢。

最佳答案

最初使用 PPI 是一种痛苦;该文档并不擅长告诉您哪个类记录了示例中显示的哪些方法。但它工作得很好:

use strict;
use warnings;
use PPI;

my %sub;
my $Document = PPI::Document->new($ARGV[0]) or die "oops";
for my $sub ( @{ $Document->find('PPI::Statement::Sub') || [] } ) {
unless ( $sub->forward ) {
$sub{ $sub->name } = $sub->content;
}
}

use Data::Dumper;
print Dumper \%sub;

关于perl - 如何编写 Perl 脚本来提取 Perl 包中每个子程序的源代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6575224/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com