home *** CD-ROM | disk | FTP | other *** search
/ c't freeware shareware 1997 / CT_SW_97.ISO / pc / software / entwickl / win95 / plsei306.exe / aspSamples / dumpvars.asp < prev    next >
Text File  |  1997-03-22  |  4KB  |  167 lines

  1. <%@ LANGUAGE = PerlScript%>
  2. <html>
  3. <head>
  4. <meta name="GENERATOR" content="ActiveWare_Hack = Dick Hardt">
  5. <!-- 
  6.     Copyright (c) 1996, Microsoft Corporation.  All rights reserved.
  7.     Developed by ActiveWare Internet Corp., http://www.ActiveWare.com
  8. -->
  9. <title>Dump PerlScript's Variables</title>
  10. </head>
  11. <body>
  12. <BODY BGCOLOR=#FFFFFF>
  13. <!-- 
  14.     ActiveWare PerlScript sample 
  15.     PerlScript:  The coolest way to program custom web solutions. 
  16. -->
  17.  
  18. <!-- Masthead -->
  19. <TABLE CELLPADDING=3 BORDER=0 CELLSPACING=0>
  20. <TR VALIGN=TOP ><TD WIDTH=400>
  21. <A NAME="TOP"><IMG SRC="PSBWlogo.gif" WIDTH=400 HEIGHT=48 ALT="ActiveWare PerlScript" BORDER=0></A><P>
  22. </TD></TR></TABLE>
  23.  
  24.  
  25.  
  26. <%
  27. #
  28. # here are some variables and functions defined
  29. # just so we can see them in the dump
  30. #
  31.  
  32.     $MyForm::var5= "MyForm::var5";
  33.     $YourForm::var5= "YourForm::var5";
  34.  
  35.     $myScalar = "Scalar String";
  36.     $myLongString = "Here is a long string that goes on and on and on and on and on and on and on";
  37.     $myHash{red}="apple";
  38.     $myHash{green}="pear";
  39.     $myHash{black}="olive";
  40.     @myArray=('one','two','three');
  41.  
  42.     sub foo ($$$) 
  43.     {
  44.         my ($a,$b,$c) = @_;
  45.     }
  46.  
  47.     sub MyForm::foo($$$) 
  48.     {
  49.         my ($a,$b,$c) = @_;
  50.     }
  51. %>
  52.  
  53.  
  54. <h2> Dump PerlScript's Variables </h2>
  55. <hr>
  56. <PRE>
  57. <code>
  58. <%    DumpPerlNames(); %>
  59. </code></pre>
  60. <hr>
  61. <h2> ... That's all folks! </h2>
  62.  
  63.  
  64. <script language=PerlScript RUNAT=Server>
  65.  
  66.  
  67. # Perl Variable tree dump
  68.  
  69. sub strip{
  70.     my $str = $_[0];
  71.  
  72.     $str =~ s/</</g;
  73.     $str =~ s/>/>/g;
  74.     $str =~ s/[\x00-\x1F]/<b>.<\/b>/g;
  75.     return $str;
  76. }
  77.  
  78.  
  79.  
  80.  
  81. sub DumpNames(\%$)
  82. {
  83.     my ($package,$packname) =  @_;
  84.     my $symname = 0;
  85.     my $value = 0; 
  86.     my $key = 0;
  87.     my $i = 0;
  88.  
  89.      if ($packname eq 'main::') {
  90.  
  91.         $Response->write("<H2>Packages</H2>\n");
  92.  
  93.         foreach $symname (sort keys %$package) {
  94.             local *sym = $$package{$symname};
  95.             $Response->write("\t<A HREF=#Package_$symname>$symname</A>\n") if ((defined %sym) && ($symname =~/::/));
  96.         }
  97.     }
  98.  
  99.     $Response->write("<H2>\n<a name=\"Package_$packname\"::>Package $packname</a>\n</H2>"); #Scalars Lists Hashes Functions
  100.     $Response->write("$packname Scalars\n");
  101.     foreach $symname (sort keys %$package) {
  102.         local *sym = $$package{$symname};
  103.         if (defined $sym) {
  104.             #$value = ' 'x(length($symname) - 30)."\$$symname";
  105.             #$value = $value."\t=".((length($sym) > 40) ? sprintf("%37.37s...",$sym) : $sym);
  106.             $value = "\t\$".strip($symname)."\t".strip($sym)."\n"; 
  107.             $Response->write($value);
  108.         }
  109.     }
  110.  
  111.  
  112.  
  113.     $Response->write("$packname Functions\n");
  114.     foreach $symname (sort keys %$package) {
  115.         local *sym = $$package{$symname};
  116.         $Response->write("\t$symname()\n") if defined &sym;
  117.     }
  118.     
  119.     $Response->write("$packname Lists\n");
  120.     foreach $symname (sort keys %$package) {
  121.         local *sym = $$package{$symname};
  122.         $Response->write("\t\@$symname\n") if defined @sym;
  123.     }
  124.  
  125.  
  126.     $Response->write("$packname Hashes\n");
  127.     foreach $symname (sort keys %$package) {
  128.         local *sym = $$package{$symname};
  129.         $Response->write("\t\@$symname\n") if ((defined %sym) && !($symname =~/::/));
  130.     }
  131.  
  132.     $Response->write("\n");
  133.  
  134.      if ($packname ne 'main::') {
  135.         return;
  136.     }
  137.  
  138.     foreach $symname (sort keys %$package) {
  139.         local *sym = $$package{$symname};
  140.         DumpNames(\%sym,$symname) if ((defined %sym) && ($symname =~/::/) && ($symname ne 'main::'));
  141.     }
  142. }
  143.  
  144. sub DumpPerlNames
  145. {
  146.     DumpNames(%main::,'main::');
  147. }
  148.  
  149.  
  150. </script>
  151. <!-- +++++++++++++++++++++++++++++++++++++
  152. here is the standard showsource link - 
  153.     Note that PerlScript must be the default language --> <hr>
  154. <%
  155.     $url = $Request->ServerVariables('PATH_INFO')->item;
  156.     $_ = $Request->ServerVariables('PATH_TRANSLATED')->item;
  157.     s/[\/\\](\w*\.asp\Z)//m;
  158.     $params = 'filename='."$1".'&URL='."$url";
  159.     $params =~ s#([^a-zA-Z0-9&_.:%/-\\]{1})#uc '%' . unpack('H2', $1)#eg;
  160. %>
  161. <A HREF="index.htm"> Return </A>
  162. <A HREF="showsource.asp?<%=$params%>">
  163. <h4><i>view the source</i></h4></A>  
  164.  
  165. </body>
  166. </html>
  167.