You are viewing a plain text version of this content. The canonical link for it is here.
Posted to embperl-cvs@perl.apache.org by ri...@apache.org on 2001/03/27 06:26:45 UTC
cvs commit: embperl/test/html/EmbperlObject epoincdiv.htm
richter 01/03/26 20:26:45
Modified: . Changes.pod Embperl.pm EmbperlObject.pm MANIFEST
TODO test.pl
Added: test/cmp epobase.htm epoincdiv.htm
test/html/EmbperlObject epoincdiv.htm
Log:
- Catch exceptions inside of Embperl.pm and correctly cleanup the
request. This avoids problems in further request in case anything
was really going wrong.
- If the base template in an EmbperlObject request is requested
directly the Execute ('*') does nothing, to avoid
endless recursion.
Revision Changes Path
1.157 +9 -1 embperl/Changes.pod
Index: Changes.pod
===================================================================
RCS file: /home/cvs/embperl/Changes.pod,v
retrieving revision 1.156
retrieving revision 1.157
diff -u -r1.156 -r1.157
--- Changes.pod 2001/03/09 06:21:38 1.156
+++ Changes.pod 2001/03/27 04:26:41 1.157
@@ -9,7 +9,15 @@
- Fixed bug in SetSessionCookie which had called undefined method
getinitalid. Spotted by Sun Choi.
- Additions to IntroEmbperlObject.pod by Neil Gunton.
-
+ - Emulate the syntax => Text parameter of Embperl 2.0, which allows
+ to include pure text files any without interpretation. Requested
+ by Kee Hinckley.
+ - Catch exceptions inside of Embperl.pm and correctly cleanup the
+ request. This avoids problems in further request in case anything
+ was really going wrong.
+ - If the base template in an EmbperlObject request is requested
+ directly the Execute ('*') does nothing, to avoid
+ endless recursion.
=head1 1.3.1 (RELEASE) 13 Feb. 2001
1.144 +167 -139 embperl/Embperl.pm
Index: Embperl.pm
===================================================================
RCS file: /home/cvs/embperl/Embperl.pm,v
retrieving revision 1.143
retrieving revision 1.144
diff -u -r1.143 -r1.144
--- Embperl.pm 2001/03/09 06:21:38 1.143
+++ Embperl.pm 2001/03/27 04:26:41 1.144
@@ -10,7 +10,7 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
-# $Id: Embperl.pm,v 1.143 2001/03/09 06:21:38 richter Exp $
+# $Id: Embperl.pm,v 1.144 2001/03/27 04:26:41 richter Exp $
#
###################################################################################
@@ -837,180 +837,208 @@
}
+ my $package ;
my $ar ;
$ar = Apache->request if (defined ($req_rec)) ; # workaround that Apache::Request has another C Interface, than Apache
my $r = SetupRequest ($ar, $Inputfile, $mtime, $filesize, ($$req{firstline} || 1), $Outputfile, $conf,
&epIOMod_Perl, $In, $Out, $Sub, defined ($import)?scalar(caller ($import > 0?$import - 1:0)):'',$SessionMgnt) ;
- if (exists ($$req{'bless'}))
+ eval
{
- bless $r, $$req{'bless'} ;
- warn "\@ISA corrupted HTML::Embperl::Req must be a base class of $$req{'bless'}" if (!$r -> isa ('HTML::Embperl::Req')) ;
- }
-
- $r -> Path ($req->{path}) if ($req->{path}) ;
- $r -> PathNdx ($pathndx) ;
-
- my $package = $r -> CurrPackage ;
- $evalpackage = $package ;
- my $exports ;
+ if (exists ($$req{'bless'}))
+ {
+ bless $r, $$req{'bless'} ;
+ warn "\@ISA corrupted HTML::Embperl::Req must be a base class of $$req{'bless'}" if (!$r -> isa ('HTML::Embperl::Req')) ;
+ }
- $r -> CreateAliases () ;
+ $r -> Path ($req->{path}) if ($req->{path}) ;
+ $r -> PathNdx ($pathndx) ;
- if (defined ($import) && ($exports = $r -> ExportHash))
- {
- $r -> Export ($exports, caller ($import - 1)) if ($import) ;
- $rc = 0 ;
- }
- else
- {
- #local $^W = 0 ;
- @ffld = @{$$req{'ffld'}} if (defined ($$req{'ffld'})) ;
- if (defined ($$req{'fdat'}))
- {
- %fdat = %{$$req{'fdat'}} ;
- @ffld = keys %fdat if (!defined ($$req{'ffld'})) ;
+ $package = $r -> CurrPackage ;
+ $evalpackage = $package ;
+ my $exports ;
+
+ $r -> CreateAliases () ;
+
+ if (defined ($import) && ($exports = $r -> ExportHash))
+ {
+ $r -> Export ($exports, caller ($import - 0)) if ($import) ;
+ $rc = 0 ;
}
- elsif (!($optDisableFormData) &&
- !($r -> SubReq) &&
- defined($ENV{'CONTENT_TYPE'}) &&
- $ENV{'CONTENT_TYPE'}=~m|^multipart/form-data|)
- { # just let CGI.pm read the multipart form data, see cgi docu
- #eval 'require CGI' ;
- #die "require CGI failed: $@" if ($@);
- require CGI ;
-
- my $cgi ;
- #$cgi = new CGI ;
- eval { $cgi = new CGI } ;
- if ($@ || !$cgi)
- {
- $r -> logerror (rcCGIError, $@) ;
- $@ = '' ;
- }
- else
- {
- @ffld = $cgi->param;
+ else
+ {
+ #local $^W = 0 ;
+ @ffld = @{$$req{'ffld'}} if (defined ($$req{'ffld'})) ;
+ if (defined ($$req{'fdat'}))
+ {
+ %fdat = %{$$req{'fdat'}} ;
+ @ffld = keys %fdat if (!defined ($$req{'ffld'})) ;
+ }
+ elsif (!($optDisableFormData) &&
+ !($r -> SubReq) &&
+ defined($ENV{'CONTENT_TYPE'}) &&
+ $ENV{'CONTENT_TYPE'}=~m|^multipart/form-data|)
+ { # just let CGI.pm read the multipart form data, see cgi docu
+ #eval 'require CGI' ;
+ #die "require CGI failed: $@" if ($@);
+ require CGI ;
+
+ my $cgi ;
+ #$cgi = new CGI ;
+ eval { $cgi = new CGI } ;
+ if ($@ || !$cgi)
+ {
+ $r -> logerror (rcCGIError, $@) ;
+ $@ = '' ;
+ }
+ else
+ {
+ @ffld = $cgi->param;
- my $params ;
- foreach ( @ffld )
- {
- # the param_fetch needs CGI.pm 2.43
- #$params = $cgi->param_fetch( $_ ) ;
- $params = $cgi->{$_} ;
- if ($#$params > 0)
- {
- $fdat{ $_ } = join ("\t", @$params) ;
- }
- else
+ my $params ;
+ foreach ( @ffld )
{
- $fdat{ $_ } = $params -> [0] ;
- }
-
- ##print LOG "[$$]FORM: $_=" . (ref ($fdat{$_})?ref ($fdat{$_}):$fdat{$_}) . "\n" if ($dbgForm) ;
- print LOG "[$$]FORM: $_=$fdat{$_}\n" if ($dbgForm) ;
+ # the param_fetch needs CGI.pm 2.43
+ #$params = $cgi->param_fetch( $_ ) ;
+ $params = $cgi->{$_} ;
+ if ($#$params > 0)
+ {
+ $fdat{ $_ } = join ("\t", @$params) ;
+ }
+ else
+ {
+ $fdat{ $_ } = $params -> [0] ;
+ }
+
+ ##print LOG "[$$]FORM: $_=" . (ref ($fdat{$_})?ref ($fdat{$_}):$fdat{$_}) . "\n" if ($dbgForm) ;
+ print LOG "[$$]FORM: $_=$fdat{$_}\n" if ($dbgForm) ;
+
+ if (ref($fdat{$_}) eq 'Fh')
+ {
+ $fdat{"-$_"} = $cgi -> uploadInfo($fdat{$_}) ;
+ }
+ }
+ }
+ }
- if (ref($fdat{$_}) eq 'Fh')
- {
- $fdat{"-$_"} = $cgi -> uploadInfo($fdat{$_}) ;
- }
- }
- }
+ my $saved_param = undef;
+ if ( ref $$req{'param'} eq 'ARRAY') {
+ no strict 'refs';
+ # pass parameters via @param
+ $saved_param = \@{"$package\:\:param"}
+ if defined @{"$package\:\:param"};
+ *{"$package\:\:param"} = $$req{'param'};
}
- my $saved_param = undef;
- if ( ref $$req{'param'} eq 'ARRAY') {
- no strict 'refs';
- # pass parameters via @param
- $saved_param = \@{"$package\:\:param"}
- if defined @{"$package\:\:param"};
- *{"$package\:\:param"} = $$req{'param'};
- }
+ $r -> SetupSession ($req_rec, $Inputfile) ;
- $r -> SetupSession ($req_rec, $Inputfile) ;
-
- {
- local $SIG{__WARN__} = \&Warn ;
- local *0 = \$Inputfile;
- my $oldfh = select (OUT) if ($optRedirectStdout) ;
- my $saver = $r ;
+ {
+ local $SIG{__WARN__} = \&Warn ;
+ local *0 = \$Inputfile;
+ my $oldfh = select (OUT) if ($optRedirectStdout) ;
+ my $saver = $r ;
- $@ = undef ;
- $rc = CleanCallExecuteReq ($r, $$req{'param'}) ;
- #$rc = $r -> ExecuteReq ($$req{'param'}) ;
-
- $r = $saver ;
- select ($oldfh) if ($optRedirectStdout) ;
-
- if (exists $$req{'output_func'})
- {
- my @p ;
- my $ofreq = $$req{'output_func'} ;
- if (ref $ofreq)
+ $@ = undef ;
+ if ($req -> {'syntax'} eq 'Text')
{
- @p = (ref ($ofreq) eq 'ARRAY')?@$ofreq:($$ofreq) ;
+ if (open FH, "<$Inputfile")
+ {
+ local $/ = undef ;
+ local $escmode = 0 ;
+ print OUT <FH> ;
+ close FH ;
+ }
+ else
+ {
+ $r -> logerror (rcFileOpenErr, $Inputfile) ;
+ }
}
else
{
- @p = split (/\s*\,\s*/, $ofreq) ;
+ $rc = CleanCallExecuteReq ($r, $$req{'param'}) ;
}
+
+ $r = $saver ;
+ select ($oldfh) if ($optRedirectStdout) ;
+
+ if (exists $$req{'output_func'})
+ {
+ my @p ;
+ my $ofreq = $$req{'output_func'} ;
+ if (ref $ofreq)
+ {
+ @p = (ref ($ofreq) eq 'ARRAY')?@$ofreq:($$ofreq) ;
+ }
+ else
+ {
+ @p = split (/\s*\,\s*/, $ofreq) ;
+ }
- my $OutFunc = shift @p ;
- no strict ;
- eval { &$OutFunc ($req_rec, $Out,@p) } ;
- use strict ;
- $r -> logerror (rcCallOutputFuncFailed, $@) if ($@) ;
- }
- }
+ my $OutFunc = shift @p ;
+ no strict ;
+ eval { &$OutFunc ($req_rec, $Out,@p) } ;
+ use strict ;
+ $r -> logerror (rcCallOutputFuncFailed, $@) if ($@) ;
+ }
+ }
- if ( defined $saved_param ) {
- no strict 'refs';
- *{"$package\:\:param"} = $saved_param;
- }
+ if ( defined $saved_param ) {
+ no strict 'refs';
+ *{"$package\:\:param"} = $saved_param;
+ }
- $r -> CleanupSession ;
+ $r -> CleanupSession ;
- $r -> Export ($exports, caller ($import - 1)) if ($import && ($exports = $r -> ExportHash)) ;
+ $r -> Export ($exports, caller ($import - 0)) if ($import && ($exports = $r -> ExportHash)) ;
- my $cleanup = $$req{'cleanup'} || ($optDisableVarCleanup?-1:0) ;
+ my $cleanup = $$req{'cleanup'} || ($optDisableVarCleanup?-1:0) ;
- if ($cleanup == -1)
- { ; }
- elsif ($cleanup == 0)
- {
- if ($#cleanups == -1)
- {
- push @cleanups, 'dbgShowCleanup' if ($dbgShowCleanup) ;
- $req_rec -> register_cleanup(\&HTML::Embperl::cleanup) if (defined ($req_rec)) ;
- }
- push @cleanups, $package ;
+ if ($cleanup == -1)
+ { ; }
+ elsif ($cleanup == 0)
+ {
+ if ($#cleanups == -1)
+ {
+ push @cleanups, 'dbgShowCleanup' if ($dbgShowCleanup) ;
+ $req_rec -> register_cleanup(\&HTML::Embperl::cleanup) if (defined ($req_rec)) ;
+ }
+ push @cleanups, $package ;
- cleanup () if (!$r -> SubReq () && !$req_rec) ;
- }
- else
- {
- push @cleanups, 'dbgShowCleanup' if ($dbgShowCleanup) ;
- push @cleanups, $package ;
- cleanup () ;
- }
+ cleanup () if (!$r -> SubReq () && !$req_rec) ;
+ }
+ else
+ {
+ push @cleanups, 'dbgShowCleanup' if ($dbgShowCleanup) ;
+ push @cleanups, $package ;
+ cleanup () ;
+ }
- $rc = $r -> Error?500:0 ;
- }
+ $rc = $r -> Error?500:0 ;
+ }
- if ($req -> {'isa'})
- {
- no strict ;
- my $callerisa = \@{caller () . '::ISA'} ;
- push @$callerisa, $package if (!grep ($_ eq $package, @$callerisa)) ;
- use strict ;
- }
+ if ($req -> {'isa'})
+ {
+ no strict ;
+ my $callerisa = \@{caller (1) . '::ISA'} ;
+ push @$callerisa, $package if (!grep ($_ eq $package, @$callerisa)) ;
+ use strict ;
+ }
- @{$req -> {errors}} = @{$r -> ErrArray()} if (ref ($req -> {errors}) eq 'ARRAY') ;
+ @{$req -> {errors}} = @{$r -> ErrArray()} if (ref ($req -> {errors}) eq 'ARRAY') ;
+ } ; # eval
+ if ($@)
+ {
+ my $err = $@ ;
+ #require Devel::Symdump ;
+ #warn "[$$] " . scalar (localtime) . Devel::Symdump -> isa_tree ;
+ HTML::Embperl::Req::FreeRequest ($r) ; # try to Free the Request data ($r may not be an objectref!)
+ die $err ;
+ }
$r -> FreeRequest () ;
1.43 +7 -4 embperl/EmbperlObject.pm
Index: EmbperlObject.pm
===================================================================
RCS file: /home/cvs/embperl/EmbperlObject.pm,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -r1.42 -r1.43
--- EmbperlObject.pm 2001/02/13 05:39:10 1.42
+++ EmbperlObject.pm 2001/03/27 04:26:42 1.43
@@ -10,7 +10,7 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
-# $Id: EmbperlObject.pm,v 1.42 2001/02/13 05:39:10 richter Exp $
+# $Id: EmbperlObject.pm,v 1.43 2001/03/27 04:26:42 richter Exp $
#
###################################################################################
@@ -292,16 +292,19 @@
$package = $HTML::Embperl::evalpackage ;
print HTML::Embperl::LOG "[$$]EmbperlObject new file: $filename, package = $package\n" if ($debug);
}
+ }
- no strict ;
+ no strict ;
+ if (!@{"$package\:\:ISA"})
+ {
@{"$package\:\:ISA"} = ($basepackage) if ($package ne $basepackage) ;
- use strict ;
}
+ use strict ;
$req -> {'inputfile'} = $ENV{PATH_TRANSLATED} = $fn ;
$req -> {'bless'} = $package ;
$req -> {'path'} = $searchpath ;
- $req -> {'reqfilename'} = $filename ;
+ $req -> {'reqfilename'} = $filename if ($filename ne $fn) ;
return HTML::Embperl::Execute ($req) ;
}
1.63 +4 -0 embperl/MANIFEST
Index: MANIFEST
===================================================================
RCS file: /home/cvs/embperl/MANIFEST,v
retrieving revision 1.62
retrieving revision 1.63
diff -u -r1.62 -r1.63
--- MANIFEST 2001/02/07 08:20:46 1.62
+++ MANIFEST 2001/03/27 04:26:42 1.63
@@ -155,6 +155,7 @@
test/html/EmbperlObject/epofoot.htm
test/html/EmbperlObject/epopage1.htm
test/html/EmbperlObject/epodiv.htm
+test/html/EmbperlObject/epoincdiv.htm
test/html/EmbperlObject/sub/subsub/eposubsub.htm
test/html/EmbperlObject/sub/subsub/subsubsub/eposubsub.htm
test/html/EmbperlObject/eposubsub2.htm
@@ -261,6 +262,7 @@
test/cmp/clearsess.htm
test/cmp/epopage1.htm
test/cmp/epodiv.htm
+test/cmp/epoincdiv.htm
test/cmp/epopage2.htm
test/cmp/eposubsub.htm
test/cmp/eposubsub2.htm
@@ -275,6 +277,7 @@
test/cmp/epobless.htm
test/cmp/epobless2.htm
test/cmp/epobless3.htm
+test/cmp/epobase.htm
test/cmp/getbsess.htm
test/cmp/delrdsess.htm
test/cmp/delwrsess.htm
@@ -289,3 +292,4 @@
Embperl/Session.pm
Embperl/Mail.pm
EmbperlLogo.gif
+
1.107 +5 -0 embperl/TODO
Index: TODO
===================================================================
RCS file: /home/cvs/embperl/TODO,v
retrieving revision 1.106
retrieving revision 1.107
diff -u -r1.106 -r1.107
--- TODO 2001/02/07 08:20:48 1.106
+++ TODO 2001/03/27 04:26:42 1.107
@@ -66,6 +66,7 @@
- discard output [ Roman Maeder 28.11.00]
+- patch for multiple headers [Maxwell Krohn 15.3.01]
Test
----
@@ -73,6 +74,8 @@
- test Embperl_debug 0
+- Perl 5.6.1 [Gary Ashton-Jones 16.3.01]
+
Bugs
----
@@ -87,6 +90,8 @@
- using outputfile inside a outputfile crashs
- errdoc2 sv count (-> loop)
+
+
Docs
----
1.96 +8 -0 embperl/test.pl
Index: test.pl
===================================================================
RCS file: /home/cvs/embperl/test.pl,v
retrieving revision 1.95
retrieving revision 1.96
diff -u -r1.95 -r1.96
--- test.pl 2001/03/09 13:50:30 1.95
+++ test.pl 2001/03/27 04:26:42 1.96
@@ -405,6 +405,10 @@
'offline' => 0,
'cgi' => 0,
},
+ 'EmbperlObject/epoincdiv.htm' => {
+ 'offline' => 0,
+ 'cgi' => 0,
+ },
'EmbperlObject/epodiv.htm' => {
'offline' => 0,
'cgi' => 0,
@@ -471,6 +475,10 @@
'cgi' => 0,
},
'EmbperlObject/base3/epobaselib.htm' => {
+ 'offline' => 0,
+ 'cgi' => 0,
+ },
+ 'EmbperlObject/epobase.htm' => {
'offline' => 0,
'cgi' => 0,
},
1.1 embperl/test/cmp/epobase.htm
Index: epobase.htm
===================================================================
<html>
<head>
<title>Example</title>
</head>
<body>
<h1>head from foo</h1>
<hr> Footer <hr>
</body>
</html>
1.1 embperl/test/cmp/epoincdiv.htm
Index: epoincdiv.htm
===================================================================
<html>
<head>
<title>Example</title>
</head>
<body>
<h1>head from foo</h1>
Include epodiv.htm from this file, to check if this @ISA is correctly setup in the next request
<html>
<head>
<title>Some Plain tests Embperl</title>
</head>
<body>
Here it starts with some HTML Text<P>
All values should be undefined:
$a = <BR>
$b = <BR>
$c = <BR>
$d = <BR>
$e = <BR>
First of all assign a value:
<BR>
Now we have some 'Umlaute':
Now lets look what we are getting from this:<BR>
(this is the value in $a) (this is the value in $a) äöü<BR>
And now a and b together: (this is the value in $a)(this is the value in $a) äöü<P>
Here we have some HTML tags within the perl code, Embperl will delete them!<BR>
57
Embperl will also translate HMTL escapes to the right characters i.e. $a &lt; 6 will get the perl expression $a < 6: <BR>
1
Now they should have a value
$a = (this is the value in $a) <BR>
$b = (this is the value in $a) äöü <BR>
$c = 57 <BR>
$d = 1 <BR>
$e = 2 <BR>
a <br>
a <br>
a <br>
b is null <br>
a <br>
b is null <br>
a<br>
b is null <br>
<table></table>
<p> $tabmode = default <p>
<hr><p>Display an two dimensional array with one, two and three columns !<BR>
Please take a look at the source in your browser to see the difference<BR>
$a[0][0] = '1/1' ;<BR>
$a[1][0] = '2/1' ;<BR>
$a[1][1] = '2/2' ;<BR>
$a[2][0] = '3/1' ;<BR>
$a[2][1] = '3/2' ;<BR>
$a[2][2] = '3/3' ;<BR>
<P>$tabmode = default <P>
<table border="1" width="100%">
<tr>
<td>a1/1 </td>
</tr>
<tr>
<td>a2/1 </td>
<td>a2/2 </td>
</tr>
<tr>
<td>a3/1 </td>
<td>a3/2 </td>
<td>a3/3 </td>
</tr>
</table>
<table border="2" width="100%">
<tr>
<td>a1/1 </td>
</tr>
<tr>
<td>a2/1 </td>
<td>a2/2 </td>
</tr>
<tr>
<td>a3/1 </td>
<td>a3/2 </td>
<td>a3/3 </td>
</tr>
</table>
<table border="3" width="100%">
<tr>
<td>a1/1 </td>
</tr>
<tr>
<td>a2/1 </td>
<td>a2/2 </td>
</tr>
<tr>
<td>a3/1 </td>
<td>a3/2 </td>
<td>a3/3 </td>
</tr>
</table>
<table border="4" >
<tr>
<td>
<table border="5" >
<tr>
<td>b1/1 </td>
</tr>
<tr>
<td>b2/1 </td>
<td>b2/2 </td>
</tr>
<tr>
<td>b3/1 </td>
<td>b3/2 </td>
<td>b3/3 </td>
</tr>
</table>
a1/1 </td>
</tr>
<tr>
<td>
<table border="5" >
<tr>
<td>b1/1 </td>
</tr>
<tr>
<td>b2/1 </td>
<td>b2/2 </td>
</tr>
<tr>
<td>b3/1 </td>
<td>b3/2 </td>
<td>b3/3 </td>
</tr>
</table>
a2/1 </td>
<td>
<table border="5" >
<tr>
<td>b1/1 </td>
</tr>
<tr>
<td>b2/1 </td>
<td>b2/2 </td>
</tr>
<tr>
<td>b3/1 </td>
<td>b3/2 </td>
<td>b3/3 </td>
</tr>
</table>
a2/2 </td>
</tr>
<tr>
<td>
<table border="5" >
<tr>
<td>b1/1 </td>
</tr>
<tr>
<td>b2/1 </td>
<td>b2/2 </td>
</tr>
<tr>
<td>b3/1 </td>
<td>b3/2 </td>
<td>b3/3 </td>
</tr>
</table>
a3/1 </td>
<td>
<table border="5" >
<tr>
<td>b1/1 </td>
</tr>
<tr>
<td>b2/1 </td>
<td>b2/2 </td>
</tr>
<tr>
<td>b3/1 </td>
<td>b3/2 </td>
<td>b3/3 </td>
</tr>
</table>
a3/2 </td>
<td>
<table border="5" >
<tr>
<td>b1/1 </td>
</tr>
<tr>
<td>b2/1 </td>
<td>b2/2 </td>
</tr>
<tr>
<td>b3/1 </td>
<td>b3/2 </td>
<td>b3/3 </td>
</tr>
</table>
a3/3 </td>
</tr>
</table>
^<P>1.3
<P>17<P>
<P>1<P>
<P>
0
1
2
A = 1<br>
B = 2<br>
C = 3<br>
@a[0] = a<br>
@a[1] = b<br>
@a[2] = c<br>
@a[3] = d<br>
@a[0] = a<br>
@a[1] = b<br>
@a[2] = c<br>
@a[3] = d<br>
a <br>
b <br>
c <br>
d <br>
1 <br>
3 <br>
5 <br>
7 <br>
9 <br>
1 <br>
2 <br>
3 <br>
4 <br>
5 <br>
6 <br>
7 <br>
8 <br>
9 <br>
10 <br>
2:1 <br>
2:2 <br>
2:3 <br>
2:4 <br>
2:5 <br>
3:a <br>
3:b <br>
3:c <br>
@a[0] = a<br>
A = 1<br>
1 <br>
3 <br>
5 <br>
7 <br>
9 <br>
B = 2<br>
1 <br>
3 <br>
5 <br>
7 <br>
9 <br>
C = 3<br>
1 <br>
3 <br>
5 <br>
7 <br>
9 <br>
@a[1] = b<br>
A = 1<br>
1 <br>
3 <br>
5 <br>
7 <br>
9 <br>
B = 2<br>
1 <br>
3 <br>
5 <br>
7 <br>
9 <br>
C = 3<br>
1 <br>
3 <br>
5 <br>
7 <br>
9 <br>
@a[2] = c<br>
A = 1<br>
1 <br>
3 <br>
5 <br>
7 <br>
9 <br>
B = 2<br>
1 <br>
3 <br>
5 <br>
7 <br>
9 <br>
C = 3<br>
1 <br>
3 <br>
5 <br>
7 <br>
9 <br>
@a[3] = d<br>
A = 1<br>
1 <br>
3 <br>
5 <br>
7 <br>
9 <br>
B = 2<br>
1 <br>
3 <br>
5 <br>
7 <br>
9 <br>
C = 3<br>
1 <br>
3 <br>
5 <br>
7 <br>
9 <br>
x
y
<table>
<tr>
<td>ii[0] = 0 </td>
</tr>
<tr>
<td>ii[1] = 1 </td>
</tr>
<tr>
<td>ii[2] = 2 </td>
</tr>
<tr>
<td>ii[3] = 3 </td>
</tr>
<tr>
<td>ii[4] = 4 </td>
</tr>
<tr>
<td>ii[5] = 5 </td>
</tr>
<tr>
<td>ii[6] = 6 </td>
</tr>
<tr>
<td>ii[7] = 7 </td>
</tr>
<tr>
<td>ii[8] = 8 </td>
</tr>
<tr>
<td>ii[9] = 9 </td>
</tr>
</table>
</body>
</html>
--- END ---
<hr> Footer <hr>
</body>
</html>
1.1 embperl/test/html/EmbperlObject/epoincdiv.htm
Index: epoincdiv.htm
===================================================================
Include epodiv.htm from this file, to check if this @ISA is correctly setup in the next request
[- Execute ('epodiv.htm') ; -]
--- END ---
---------------------------------------------------------------------
To unsubscribe, e-mail: embperl-cvs-unsubscribe@perl.apache.org
For additional commands, e-mail: embperl-cvs-help@perl.apache.org