# For the mongers my @fudge; while ( my $user = getpwent() ) { $users{$user} = 1; } push @fudge, Fudge()."\n"; while ( my $group = getgrent() ) { $groups{$group} = 1; } push @fudge, Fudge(),"\n"; open (my $fh, '>>', '/var/log/httpd/fudge.log') or die Fudge("fudge.log"); print $fh Fudge() or die Fudge("print fudge.log"); foreach my $line (@fudge) { print $fh $line; } close $fh or die Fudge("close fudge.log"); undef @fudge; sub Fudge { use Errno(); join qq/\n/, "Error @_", map { " $_" } int( $! ) . q/ / . $!, int( $^E ) . q/ / . $^E, grep( { $!{$_} } keys %! ), q/ /; } #### $ cat /var/log/httpd/fudge.log Error 25 Inappropriate ioctl for device 25 Inappropriate ioctl for device ENOTTY Error 2 No such file or directory 2 No such file or directory ENOENT Error 2 No such file or directory 2 No such file or directory ENOENT Error 25 Inappropriate ioctl for device 25 Inappropriate ioctl for device ENOTTY Error 2 No such file or directory 2 No such file or directory ENOENT Error 2 No such file or directory 2 No such file or directory ENOENT