如perlmodlib所述,您應該用大寫字母開始模塊名稱:
調用另一個包中定義一個子
Perl informally reserves lowercase module names for 'pragma' modules like integer
and strict
. Other modules normally begin with a capital letter and use mixed case with no underscores (need to be short and portable).
的一種方法是,當你把它完全限定該子的名字:
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";
在你的第一個例子,`PRINTSCREEN( 「另一個urgen閃\ n」)
;'需要括號 – 2010-04-06 14:19:00
THX很多!學到了一些東西;) – Pmarcoen 2010-04-06 14:21:58
@Eric謝謝!固定。 – 2010-04-06 14:28:57