/usr/share/perl5/Log/Log4perl/Util.pm is in liblog-log4perl-perl 1.29-1ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | package Log::Log4perl::Util;
use File::Spec;
##################################################
sub module_available { # Check if a module is available
##################################################
# This has to be here, otherwise the following 'use'
# statements will fail.
##################################################
my($full_name) = @_;
my $relpath = File::Spec->catfile(split /::/, $full_name) . '.pm';
# Work around a bug in Activestate's "perlapp", which uses
# forward slashes instead of Win32 ones.
my $relpath_with_forward_slashes =
join('/', (split /::/, $full_name)) . '.pm';
return 1 if exists $INC{$relpath} or
exists $INC{$relpath_with_forward_slashes};
foreach my $dir (@INC) {
if(ref $dir) {
# This is fairly obscure 'require'-functionality, nevertheless
# trying to implement them as diligently as possible. For
# details, check "perldoc -f require".
if(ref $dir eq "CODE") {
return 1 if $dir->($dir, $relpath_with_forward_slashes);
} elsif(ref $dir eq "ARRAY") {
return 1 if $dir->[0]->($dir, $relpath_with_forward_slashes);
} elsif(ref $dir and
ref $dir !~ /^(GLOB|SCALAR|HASH|REF|LVALUE)$/) {
return 1 if $dir->INC();
}
} else {
# That's the regular case
return 1 if -r File::Spec->catfile($dir, $relpath);
}
}
return 0;
}
##################################################
sub tmpfile_name { # File::Temp without the bells and whistles
##################################################
my $name = File::Spec->catfile(File::Spec->tmpdir(),
'l4p-tmpfile-' .
"$$-" .
int(rand(9999999)));
# Some crazy versions of File::Spec use backslashes on Win32
$name =~ s#\\#/#g;
return $name;
}
1;
__END__
=head1 NAME
Log::Log4perl::Util - Internal utility functions
=head1 DESCRIPTION
Only internal functions here. Don't peek.
=head1 COPYRIGHT AND LICENSE
Copyright 2002-2009 by Mike Schilli E<lt>m@perlmeister.comE<gt>
and Kevin Goess E<lt>cpan@goess.orgE<gt>.
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
=cut
|