HEX
Server: Apache
System: Linux info 3.0 #1337 SMP Tue Jan 01 00:00:00 CEST 2000 all GNU/Linux
User: u80650282 (6669564)
PHP: 8.0.30
Disabled: NONE
Upload Files
File: /homepages/10/d573043092/htdocs/logs/info.pl
#!/usr/bin/perl

use strict;
use File::Find;

my @foundmods;
my %found;
my (@mod1, @mod2);

print "Content-type:  text/html\n\n";

my $perl_version = sprintf("%vd", $^V);  # human readable version of $]

print qq~ <html><head>
<style type="text/css">
<!--
th        {font:bold 16px Arial,"Lucida Grande","Lucida Sans Unicode","Bitstream Vera Sans",Verdana,Futura,Helvetica,sans-serif; color:#fff; background-color:#0A328C; padding:5px 0; }
td        {font:12px Arial,"Lucida Grande","Lucida Sans Unicode","Bitstream Vera Sans",Verdana,Futura,Helvetica,sans-serif; line-height:1.5em; vertical-align:top;}
.leftcol  {width:35%; background-color:#E9F0FA; padding-left:5px;}
.rightcol {width:65% }
a:link    {font:12px Arial,"Lucida Grande","Lucida Sans Unicode","Bitstream Vera Sans",Verdana,Futura,Helvetica,sans-serif; color:#002276; text-decoration: none;}
a:visited {font:12px Arial,"Lucida Grande","Lucida Sans Unicode","Bitstream Vera Sans",Verdana,Futura,Helvetica,sans-serif; color:#002276; text-decoration: none;}
a:active  {font:12px Arial,"Lucida Grande","Lucida Sans Unicode","Bitstream Vera Sans",Verdana,Futura,Helvetica,sans-serif; color:#000; text-decoration: underline;}
a:hover   {font:12px Arial,"Lucida Grande","Lucida Sans Unicode","Bitstream Vera Sans",Verdana,Futura,Helvetica,sans-serif; color:#000; text-decoration: underline;}
h1        {font:bold 24px Arial,"Lucida Grande","Lucida Sans Unicode","Bitstream Vera Sans",Verdana,Futura,Helvetica,sans-serif; margin:10px 0 4px;}
table     {margin:30px 0 0;}
-->
</style>

<title>Perl Configuration</title>
</head>

<body>
<h1 style="text-align: center">Perl Configuration</h1>

<table width="100%">
<tr><th colspan="2">Program Paths</th></tr>
<tr><td class="leftcol"><b>Perl Version</b></td><td class="rightcol">$perl_version</td></tr>
<tr><td class="leftcol"><b>Perl Executable</b></td><td class="rightcol">$^X</td></tr>
<tr><td class="leftcol"><b>PERL compile version OS</b></td><td class="rightcol">$^O</td></tr>

<tr><td class="leftcol"><b>Location of Perl</b></td><td class="rightcol">~;

foreach my $location (split ' ', `whereis perl`) {
	print "$location<br>\n";
}

print qq~
</td></tr>
<tr><td class="leftcol"><b>Location of Sendmail</b></td><td class="rightcol">~;

foreach my $location (split ' ', `whereis sendmail`) {
	print "$location<br>\n";
}

print qq~
</td></tr>
<tr><td class="leftcol"><b>Directory locations searched for perl executables</b></td><td class="rightcol">~;

foreach my $location (@INC) {
	print "$location <br>\n";
}

print qq~
</td></tr>
</table>

<table>
<tr><th colspan="2">Environment Variables</th></tr>~;

foreach my $var (keys %ENV) {
	print qq~ <tr><td class="leftcol"><b>$var</b></td><td class="rightcol">$ENV{$var}</td></tr>~;
}

print qq~
</table>

<table width="100%">
<tr><th colspan="3">Installed Perl Modules</th></tr>~;

find({wanted=>\&wanted,follow=>1,follow_skip=>2},@INC);
my $modcount = 0;
foreach my $line (@foundmods){
	my $match = lc $line;
	if ($found{$line}[0] > 0) {
		$found{$line} = [$found{$line}[0]+1, $match];
	} else {
		$found{$line} = [1, $match];
		$modcount++;
	}
}
@foundmods = sort count keys(%found);

my $third = $modcount/3;
my $count=0;
print qq~ <tr><td width="33%" valign="top"><table>~;
foreach my $mod (@foundmods){
	chomp $mod;
	$count++;
	if ($count <= $third){
		print qq~ <tr><td class="rightcol">$mod</td></tr>~;
	} else {
		push (@mod1,$mod)
	}
}

print qq~ </table></td><td width="33%" valign="top"><table>~;
$count = 0;
foreach my $mod1 (@mod1){
	chomp $mod1;
	$count++;
	if ($count <= $third){
		print qq~ <tr><td class="rightcol">$mod1</td></tr>~;
	} else {
		push (@mod2,$mod1)
	}
}
print qq~ </table></td><td width="33%" valign="top"><table>~;
$count = 0;
foreach my $mod2 (@mod2){
	chomp $mod2;
	$count++;
	if ($count <= $third){
		print qq~ <tr><td class="rightcol">$mod2</td></tr>~;
	}
}

print qq~
</table></tr>
</table>
</body>
</html>~;

exit;

sub count {
	return $found{$a}[1] cmp $found{$b}[1];
}

sub wanted {
	if ($File::Find::name =~ /\.pm$/){
		open(my $MODFILE, '<', $File::Find::name) || return;
		while (<$MODFILE>){
			if (/^ *package +(\S+);/){
				push (@foundmods, $1);
				last;
			}
		}
	}
}