我是新來的對象在Perl的面向對象編程。所以,我有一個愚蠢的問題。的Perl類::無法寫入輸出
什麼 - 我寫一個腳本,將做一些事情,結果寫入流(標準輸出或網絡)。
如何 -
[main.pl]
#!/usr/bin/perl
use strict;
require const::StreamTypes;
require output;
my $out = output->new("output");
$out->writeLine("Sample output");
[output.pm]
#!/usr/bin/perl
use strict;
require const::StreamTypes;
package output;
my $OUTSTR;
sub new{
my $class = shift();
my $stream = shift();
if($stream eq const::StreamTypes->STDNET){
}elsif($stream eq const::StreamTypes->STDWEB){
}else{
*OUTSTR = *STDOUT;
}
my $self = {
"_outStream" => $stream,
"_outStreamPtr" => $OUTSTR
};
bless($self, $class);
}
sub writeLine{
my $msg = shift();
print(OUTSTR "$msg\n");
}
return 1;
因此,誰能幫助我明白是怎麼回事錯在這裏? '程序運行沒有錯誤,但沒有輸出。
謝謝!
目前還不清楚是什麼你正在努力實現?我可以運行程序,將所有對const :: StreamTypes的引用剝離出來,並打印出對象:'output = HASH(0x7fbfcb004038)'。你可能希望writeLn有一個'my($ self,$ msg)= @_;'行而不是'shift'? – Unk