This works fine for me. I am on Strawberry Perl 5 version 16.2. Are you sure you aren't missing the warning? It won't appear as the last line of output unless you start with STDOUT->autoflush.
–
BorodinMar 17 '13 at 17:11

As Borodin explains, this workaround localises the two elements of %SIG that XML::Smart modifies so that the damage is restricted to the enclosing block. The values are automatically restored at the end of the block, immediately after the call to $XML->save.

Thank you! This works great on OS-X but can you please elaborate on this workaround and what effect it has to actually make warn work? I will also try on Solaris my work machine.
–
Evangelos ValtosMar 17 '13 at 18:42

2

@EvangelosValtos: What this work-around does is localize the two elements of %SIG that XML::Smart tinkers with, so that the damage is restricted to the enclosing block. The values are automatically restored at the end of the block, immediately after the call to $XML->save.
–
BorodinMar 17 '13 at 19:26