如perlmodlib 中所述,您的模块名称应以大写字母开头:
Perl 非正式地为“pragma”模块保留小写的模块名称,例如integer 和strict。其他模块通常以大写字母开头,并使用大小写混合,没有下划线(需要简短且可移植)。
调用另一个包中定义的子的一种方法是在调用时完全限定该子的名称:
SettingsGeneral::printScreen "important message\n";
如果您只想引用printScreen,请使用反斜杠运算符获取它
my $subref = \&SettingsGeneral::printScreen;
并用其中之一调用它
&$subref("one\n");
&{$subref}("two\n");
$subref->("three\n");
您可以在当前包中创建alias:
*printScreen = \&SettingsGeneral::printScreen;
printScreen("another urgent flash\n");
通过编写跳过括号(这是必要的,因为当前包中的子在编译时未知):
use subs 'printScreen';
*printScreen = \&SettingsGeneral::printScreen;
printScreen "the sky is falling!\n";
Exporter 模块可以为您完成这项保管工作:
SettingsGeneral.pm:
package SettingsGeneral;
use Exporter 'import';
our @EXPORT = qw/ printScreen /;
sub printScreen {
print $_[0];
}
1;
主要:
#! /usr/bin/perl
use warnings;
use strict;
use SettingsGeneral;
printScreen "foo!\n";