package MY_TEST;
use warnings;
use strict;
use Win32::Console;
my $out = Win32::Console->new(STD_OUTPUT_HANDLE);
sub test_print {
$out->Write("printed with 'Write'\n");
print("printed with 'print'\n");
}
当我把这个包这个脚本的Win32 :: Console和STDOUT
#!/usr/bin/env perl
use warnings;
use strict;
use 5.10.0;
use FindBin qw($RealBin);
use MY_TEST;
say 'Before "test_print"';
MY_TEST::test_print;
say 'After "test_print"';
输出看起来像这样
Before "test_print"
printed with 'Write'
printed with 'print'
After "test_print"
但是,当我发表意见Write
线路输出
# $out->Write("printed with 'Write'\n");
输出为空。
为什么删除Write
行会阻止打印print
行?
你有尝试混合这两种方法的原因吗? –
我使用的是'Win32 :: Console :: ANSI',所以大多数时候我可以使用'print'来确定光标位置,我需要一个'Win32 :: Console-> new(STD_OUTPUT_HANDLE)'对象。 –