Hi, I'm using the stable mon-1.2.0-1 under Ubuntu 11.04 (Perl 5.10.1), and I noticed that mon wasn't logging anything at all in syslog. Further inspection revealed that the problem seems to be in the redefined syslog() function:
no warnings; # Redefining syslog sub syslog { eval { local $SIG{"__DIE__"}= sub { }; my @log = map { s/\%//mg; } @_; Sys::Syslog::syslog(@log); } } since $_ is aliased in a map {} block, when the function is passed constant strings, the map {} on @_ fails with a "modification of a read-only value attempted". However this is not apparent, not even in debug mode, since it happens inside the eval{} block. Suggested change (for example): no warnings; # Redefining syslog sub syslog { eval { local $SIG{"__DIE__"}= sub { }; my @log = @_; s/\%//mg for (@log); Sys::Syslog::syslog(@log); } } Regards, -- D. _______________________________________________ mon mailing list mon@linux.kernel.org http://linux.kernel.org/mailman/listinfo/mon