You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
166 lines
3.9 KiB
166 lines
3.9 KiB
<%@ LANGUAGE = PerlScript%>
|
|
<html>
|
|
<head>
|
|
<meta name="GENERATOR" content="ActiveState_Hack = Dick Hardt">
|
|
<!--
|
|
Copyright (c) 1996, Microsoft Corporation. All rights reserved.
|
|
Developed by ActiveState Internet Corp., http://www.ActiveState.com
|
|
-->
|
|
<title>Dump PerlScript's Variables</title>
|
|
</head>
|
|
<body>
|
|
<BODY BGCOLOR=#FFFFFF>
|
|
<!--
|
|
ActiveState PerlScript sample
|
|
PerlScript: The coolest way to program custom web solutions.
|
|
-->
|
|
|
|
<!-- Masthead -->
|
|
<TABLE CELLPADDING=3 BORDER=0 CELLSPACING=0>
|
|
<TR VALIGN=TOP ><TD WIDTH=400>
|
|
<A NAME="TOP"><IMG SRC="PSBWlogo.gif" WIDTH=400 HEIGHT=48 ALT="ActiveState PerlScript" BORDER=0></A><P>
|
|
</TD></TR></TABLE>
|
|
|
|
|
|
|
|
<%
|
|
#
|
|
# here are some variables and functions defined
|
|
# just so we can see them in the dump
|
|
#
|
|
|
|
$MyForm::var5= "MyForm::var5";
|
|
$YourForm::var5= "YourForm::var5";
|
|
|
|
$myScalar = "Scalar String";
|
|
$myLongString = "Here is a long string that goes on and on and on and on and on and on and on";
|
|
$myHash{red}="apple";
|
|
$myHash{green}="pear";
|
|
$myHash{black}="olive";
|
|
@myArray=('one','two','three');
|
|
|
|
sub foo ($$$)
|
|
{
|
|
my ($a,$b,$c) = @_;
|
|
}
|
|
|
|
sub MyForm::foo($$$)
|
|
{
|
|
my ($a,$b,$c) = @_;
|
|
}
|
|
%>
|
|
|
|
|
|
<h2> Dump PerlScript's Variables </h2>
|
|
<hr>
|
|
<PRE>
|
|
<code>
|
|
<% DumpPerlNames(); %>
|
|
</code></pre>
|
|
<hr>
|
|
<h2> ... That's all folks! </h2>
|
|
|
|
|
|
<script language=PerlScript RUNAT=Server>
|
|
|
|
|
|
# Perl Variable tree dump
|
|
|
|
sub strip{
|
|
my $str = $_[0];
|
|
|
|
$str =~ s/</</g;
|
|
$str =~ s/>/>/g;
|
|
$str =~ s/[\x00-\x1F]/<b>.<\/b>/g;
|
|
return $str;
|
|
}
|
|
|
|
|
|
|
|
|
|
sub DumpNames(\%$)
|
|
{
|
|
my ($package,$packname) = @_;
|
|
my $symname = 0;
|
|
my $value = 0;
|
|
my $key = 0;
|
|
my $i = 0;
|
|
|
|
if ($packname eq 'main::') {
|
|
|
|
$Response->write("<H2>Packages</H2>\n");
|
|
|
|
foreach $symname (sort keys %$package) {
|
|
local *sym = $$package{$symname};
|
|
$Response->write("\t<A HREF=#Package_$symname>$symname</A>\n") if ((defined %sym) && ($symname =~/::/));
|
|
}
|
|
}
|
|
|
|
$Response->write("<H2>\n<a name=\"Package_$packname\"::>Package $packname</a>\n</H2>"); #Scalars Lists Hashes Functions
|
|
$Response->write("$packname Scalars\n");
|
|
foreach $symname (sort keys %$package) {
|
|
local *sym = $$package{$symname};
|
|
if (defined $sym) {
|
|
#$value = ' 'x(length($symname) - 30)."\$$symname";
|
|
#$value = $value."\t=".((length($sym) > 40) ? sprintf("%37.37s...",$sym) : $sym);
|
|
$value = "\t\$".strip($symname)."\t".strip($sym)."\n";
|
|
$Response->write($value);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
$Response->write("$packname Functions\n");
|
|
foreach $symname (sort keys %$package) {
|
|
local *sym = $$package{$symname};
|
|
$Response->write("\t$symname()\n") if defined &sym;
|
|
}
|
|
|
|
$Response->write("$packname Lists\n");
|
|
foreach $symname (sort keys %$package) {
|
|
local *sym = $$package{$symname};
|
|
$Response->write("\t\@$symname\n") if defined @sym;
|
|
}
|
|
|
|
|
|
$Response->write("$packname Hashes\n");
|
|
foreach $symname (sort keys %$package) {
|
|
local *sym = $$package{$symname};
|
|
$Response->write("\t\@$symname\n") if ((defined %sym) && !($symname =~/::/));
|
|
}
|
|
|
|
$Response->write("\n");
|
|
|
|
if ($packname ne 'main::') {
|
|
return;
|
|
}
|
|
|
|
foreach $symname (sort keys %$package) {
|
|
local *sym = $$package{$symname};
|
|
DumpNames(\%sym,$symname) if ((defined %sym) && ($symname =~/::/) && ($symname ne 'main::'));
|
|
}
|
|
}
|
|
|
|
sub DumpPerlNames
|
|
{
|
|
DumpNames(%main::,'main::');
|
|
}
|
|
|
|
|
|
</script>
|
|
<!-- +++++++++++++++++++++++++++++++++++++
|
|
here is the standard showsource link -
|
|
Note that PerlScript must be the default language --> <hr>
|
|
<%
|
|
$url = $Request->ServerVariables('PATH_INFO')->item;
|
|
$_ = $Request->ServerVariables('PATH_TRANSLATED')->item;
|
|
s/[\/\\](\w*\.asp\Z)//m;
|
|
$params = 'filename='."$1".'&URL='."$url";
|
|
$params =~ s#([^a-zA-Z0-9&_.:%/-\\]{1})#uc '%' . unpack('H2', $1)#eg;
|
|
%>
|
|
<A HREF="index.htm"> Return </A>
|
|
<A HREF="showsource.asp?<%=$params%>">
|
|
<h4><i>view the source</i></h4></A>
|
|
|
|
</body>
|
|
</html>
|