1
我想在一個包中定義一些常量,然後在另一個包中使用它們,但我似乎沒有這樣做!在第一張照片我得到如何在Perl中打印導出的模塊常量?
裸詞「FAVORITE_COLOR」不允許的,而在使用「嚴格潛艇」 ......
我想這是因爲我沒有使用的基本路徑我包在lib()函數,
模塊 我/ Colors.pm
package My::Colors;
BEGIN {
use Exporter;
our($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
$VERSION = 1.00;
@ISA = qw(Exporter);
@EXPORT = qw();
@EXPORT_OK = qw(FAVORITE_COLOR DISLIKED_COLOR);
%EXPORT_TAGS = ('all' => [ @EXPORT, @EXPORT_OK ], 'const' => [ 'FAVORITE_COLOR', 'DISLIKED_COLOR']);
}
our @EXPORT_OK;
use lib qw(/home/dev);
use Carp;
use constant {
DISLIKED_COLOR => "green",
FAVORITE_COLOR => "red"
};
sub new {
my($class, %args) = @_;
my $self = bless({}, $class);
my $target = exists $args{target} ? $args{target} : "new";
$self->{target} = $target;
return $self;
}
1;
模塊,包括出口常數 color_driver.plx
#!/usr/bin/perl -w
use warnings;
use strict;
use diagnostics;
use lib qw(/home/dev/My);
use Colors;
use Colors qw(:const);
sub main{
my $color = new Colors;
print "Color is",FAVORITE_COLOR;
}
main();
任何知道我做錯了嗎?
當我刪除嚴格不斷犯規轉化爲它的價值=/
更新 不幸的是,現在Perl是抱怨說,它無法找到新的子
無法找到對象的方法「新」 通過包 「顏色」 在color_driver.plx線(也許你 忘記 負荷 「顏色」?)15(#1)
哇這種工作 - 新仍然沒有工作,但當我把新的呼籲,其他常數工作。但是如果我把正確的路徑放在lib()函數中,爲什麼我必須包含完整的Package路徑?我想只是使用顏色qw(:const) – qodeninja
@codeninja,當時你發佈的內容沒有'new'。無論如何,更新。 – ikegami
--- oic !!!該包也必須與lib()配合!謝謝^ _^- 對不起,我正在更新和測試當你評論時 - 我試着同步所有內容並同時更新問題 - 所以不要生氣!如果你能在那裏修正那麼一點票,我想我們都可以快樂!再次感謝你! – qodeninja