Как указано в 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 ("другой флэш-Юрген \ п");' потребности Паренс –
THx много! узнал что-то;) – Pmarcoen
@ Eric Спасибо! Исправлена. –