我意识到使用XML :: Smart保存后出现警告问题.
#!/usr/bin/perl
use strict;
use warnings;
use XML::Smart;
my $XML = XML::Smart->new() ;
print STDOUT "Before save: Print to STDOUT works\n";
print STDERR "Before save: Print to STDERR works\n";
warn "Before save: Warn works\n";
$XML->save('newfile.xml') ;
print STDOUT "After save: Print to STDOUT works\n";
print STDERR "After save: Print to STDERR works\n";
warn "After save: Warn does not work\n";
Run Code Online (Sandbox Code Playgroud)
测试在OSX 10.8.2 perl版本5.12.4 xml-smart版本1.77中完成
这可能与XML :: Smart的内部工作方式密切相关,但有一种方法可以恢复警告的打印(重置STDERR).
[编辑19/3/2013]:在HP-UX构造函数中也存在问题.ikegami下面提供的解决方法可以用于new和save来克服这个问题.