Perl:在脚本中包含/嵌入模块

Perl:在脚本中包含/嵌入模块,perl,module,Perl,Module,我有一个脚本,它使用我从CPAN编写的一个模块的子类来表示。理想情况下,我希望将两者放在同一个文件中,因为子类模块中没有太多代码。扩展子类模块以包含脚本代码或将脚本转换为模块都没有意义。我应该如何在脚本中包含模块代码?您可以做以下操作,命名要包含的“模块”core.pm或类似的内容。然后将它放在与另一个脚本相同的目录中,并放在脚本putrequire core中,这应该可以工作。一般来说,请查看使用和要求,这两种方法可以帮助您以某种方式实现所需的功能。在一个文件中包含多个程序包没有问题 pack

我有一个脚本,它使用我从CPAN编写的一个模块的子类来表示。理想情况下,我希望将两者放在同一个文件中,因为子类模块中没有太多代码。扩展子类模块以包含脚本代码或将脚本转换为模块都没有意义。我应该如何在脚本中包含模块代码?

您可以做以下操作,命名要包含的“模块”
core.pm
或类似的内容。然后将它放在与另一个脚本相同的目录中,并放在脚本put
require core中,这应该可以工作。一般来说,请查看
使用
要求
,这两种方法可以帮助您以某种方式实现所需的功能。

在一个文件中包含多个程序包没有问题

package Foo;

sub new {
    print "Foo::new\n";
}

package main;

new Foo;

这是目前的安排,;我将模块和脚本放在同一个目录中。不过,我希望它们在同一个文件中,因为模块代码很短。哦,我没有完全得到你的答案。那么看看上面罗曼的答案。你可以把包放在脚本中……我犯了一个错误,没有从“main”包中删除“use-Foo”声明。谢谢这里没有,但是在
Foo
中声明的词法变量(
my…;
our…;
)将在
main
中可见。如果不希望这样,请用大括号将包括起来:
{package Foo;…}
my()用于词汇变量。我们的()用于包变量,尽管它的效果是词法的。另外值得注意的是,
package
可以限制为词法块。因此,您可以在包“main”中执行
{package Foo;sub bar{'blah'}}#返回