Mailing List Archive

svn commit: r1503556 - in /perl/embperl/trunk: Changes.pod Embperl.pm Embperl/Syntax/HTML.pm MANIFEST Old.xs epeval.c epparse.c test.pl test/cmp/escape.htm test/cmp/hidden.htm test/cmp/include.htm test/cmp/includeerr2.htm518
Author: richter
Date: Tue Jul 16 04:38:26 2013
New Revision: 1503556

URL: http://svn.apache.org/r1503556
Log:
- hash order and exit adaption for Perl 5.18

Added:
perl/embperl/trunk/test/cmp/includeerr2.htm518
Modified:
perl/embperl/trunk/Changes.pod
perl/embperl/trunk/Embperl.pm
perl/embperl/trunk/Embperl/Syntax/HTML.pm
perl/embperl/trunk/MANIFEST
perl/embperl/trunk/Old.xs
perl/embperl/trunk/epeval.c
perl/embperl/trunk/epparse.c
perl/embperl/trunk/test.pl
perl/embperl/trunk/test/cmp/escape.htm
perl/embperl/trunk/test/cmp/hidden.htm
perl/embperl/trunk/test/cmp/include.htm

Modified: perl/embperl/trunk/Changes.pod
URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Changes.pod?rev=1503556&r1=1503555&r2=1503556&view=diff
==============================================================================
--- perl/embperl/trunk/Changes.pod (original)
+++ perl/embperl/trunk/Changes.pod Tue Jul 16 04:38:26 2013
@@ -13,6 +13,12 @@
- Fixed a refcounting problem cause message "Attempt to
free unreferenced scalar" during mod_perl startup
with Perl 5.14.x
+ - Fix some dependencies on hash order inside the parser
+ which causes Embperl to fail with Perl >= 5.18 because
+ of hash randomisation.
+ - Changed the way exit passed through internaly, so it
+ works with Perl >= 5.18
+ - Adapted tests to Perl 5.18
- Fix output inside of Registry script for mod_perl 2.0.4+
- Fix problem with error output on stderr for Windows 64Bit
- removed support for XALAN XML parser. It was outdated

Modified: perl/embperl/trunk/Embperl.pm
URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl.pm?rev=1503556&r1=1503555&r2=1503556&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl.pm (original)
+++ perl/embperl/trunk/Embperl.pm Tue Jul 16 04:38:26 2013
@@ -319,7 +319,7 @@ sub get_multipart_formdata
foreach ( @$ffld )
{
# the param_fetch needs CGI.pm 2.43
- $params = $cgi->param_fetch( $_ ) ;
+ $params = $cgi->param_fetch( -name => $_ ) ;
#$params = $cgi->{$_} ;
if ($#$params > 0)
{

Modified: perl/embperl/trunk/Embperl/Syntax/HTML.pm
URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Embperl/Syntax/HTML.pm?rev=1503556&r1=1503555&r2=1503556&view=diff
==============================================================================
--- perl/embperl/trunk/Embperl/Syntax/HTML.pm (original)
+++ perl/embperl/trunk/Embperl/Syntax/HTML.pm Tue Jul 16 04:38:26 2013
@@ -150,14 +150,14 @@ sub AddTag


$self -> AddToRoot ({
- 'HTML Tag' => {
+ 'A HTML Tag' => {
'text' => '<',
'end' => '>',
}
- }) if (!exists $self -> {-root}{'HTML Tag'}) ;
+ }) if (!exists $self -> {-root}{'A HTML Tag'}) ;


- $self -> AddElement ('HTML Tag', @_) ;
+ $self -> AddElement ('A HTML Tag', @_) ;
}



Modified: perl/embperl/trunk/MANIFEST
URL: http://svn.apache.org/viewvc/perl/embperl/trunk/MANIFEST?rev=1503556&r1=1503555&r2=1503556&view=diff
==============================================================================
--- perl/embperl/trunk/MANIFEST (original)
+++ perl/embperl/trunk/MANIFEST Tue Jul 16 04:38:26 2013
@@ -238,6 +238,7 @@ mod_embperl.c
test.pl
test/cmp/includeerr3.htm514
test/cmp/includeerr2.htm514
+test/cmp/includeerr2.htm518
test/cmp/error.htm514
test/cmp/varerr.htm514
test/cmp/Execute.htm

Modified: perl/embperl/trunk/Old.xs
URL: http://svn.apache.org/viewvc/perl/embperl/trunk/Old.xs?rev=1503556&r1=1503555&r2=1503556&view=diff
==============================================================================
--- perl/embperl/trunk/Old.xs (original)
+++ perl/embperl/trunk/Old.xs Tue Jul 16 04:38:26 2013
@@ -136,6 +136,7 @@ void
embperl_exit(...)
CODE:
/* from mod_perl's perl_util.c */
+ /* does not work with Perl >= 5.18
struct ufuncs umg;

umg.uf_val = errgv_empty_set;
@@ -143,17 +144,18 @@ CODE:
umg.uf_index = (IV)0;

sv_magic(ERRSV, Nullsv, 'U', (char*) &umg, sizeof(umg));
+ */

ENTER;
SAVESPTR(diehook);
diehook = Nullsv;
if (items > 0)
- croak("request %d", SvIV(ST(0)));
+ croak(">embperl_exit< request %d", SvIV(ST(0)));
else
- croak("component");
+ croak(">embperl_exit< component");
LEAVE; /* we don't get this far, but croak() will rewind */

- sv_unmagic(ERRSV, 'U');
+ /* sv_unmagic(ERRSV, 'U'); */




Modified: perl/embperl/trunk/epeval.c
URL: http://svn.apache.org/viewvc/perl/embperl/trunk/epeval.c?rev=1503556&r1=1503555&r2=1503556&view=diff
==============================================================================
--- perl/embperl/trunk/epeval.c (original)
+++ perl/embperl/trunk/epeval.c Tue Jul 16 04:38:26 2013
@@ -556,7 +556,8 @@ int CallCV (/*i/o*/ register req * r,
STRLEN l ;
char * p ;

- if (SvMAGICAL (pSVErr) && mg_find (pSVErr, 'U'))
+ p = SvPV (pSVErr, l) ;
+ if (p && l > 14 && strncmp(p, ">embperl_exit<", 14) == 0)
{
/* On an Apache::exit call, the function croaks with error having 'U' magic.
* When we get this return, we'll just give up and quit this file completely,
@@ -572,7 +573,6 @@ int CallCV (/*i/o*/ register req * r,
if (r -> Component.Config.bDebug & dbgEval)
lprintf (r -> pApp, "[%d]EVAL> exit called\n", r -> pThread -> nPid) ;

- sv_unmagic(pSVErr,'U');
sv_setpv(pSVErr,"");

r -> Component.Config.bOptions |= optNoUncloseWarn ;
@@ -581,7 +581,6 @@ int CallCV (/*i/o*/ register req * r,
return rcExit ;
}

- p = SvPV (pSVErr, l) ;
if (l > sizeof (r -> errdat1) - 1)
l = sizeof (r -> errdat1) - 1 ;
strncpy (r -> errdat1, p, l) ;
@@ -844,27 +843,26 @@ int CallStoredCV (/*i/o*/ register req
STRLEN l ;
char * p ;

- if (SvMAGICAL (pSVErr) && mg_find (pSVErr, 'U'))
+ p = SvPV (pSVErr, l) ;
+ if (p && l > 14 && strncmp(p, ">embperl_exit<", 14) == 0)
{
/* On an Apache::exit call, the function croaks with error having 'U' magic.
* When we get this return, we'll just give up and quit this file completely,
* without error. */

/*struct magic * m = SvMAGIC (pSVErr) ;*/
-
tDomTree * pDomTree = DomTree_self (r -> Component.xCurrDomTree) ;
tIndex n = ArrayGetSize (r -> pApp, pDomTree -> pCheckpoints) ;
if (n > 2)
DomTree_checkpoint (r, n-1) ;

p = SvPV(ERRSV, l) ;
- if (l > 0 && strncmp (p, "request ",8) == 0)
+ if (l > 0 && strncmp (p, ">embperl_exit< request ", 23) == 0)
r -> bExit = 1 ;

if (r -> Component.Config.bDebug & dbgEval)
lprintf (r -> pApp, "[%d]EVAL> %s exit called (%s)\n", r -> pThread -> nPid, r -> bExit?"request":"component", p?p:"") ;

- sv_unmagic(pSVErr,'U');
sv_setpv(pSVErr,"");

r -> Component.Config.bOptions |= optNoUncloseWarn ;
@@ -873,7 +871,6 @@ int CallStoredCV (/*i/o*/ register req
return rcExit ;
}

- p = SvPV (pSVErr, l) ;
if (l > sizeof (r -> errdat1) - 1)
l = sizeof (r -> errdat1) - 1 ;
strncpy (r -> errdat1, p, l) ;

Modified: perl/embperl/trunk/epparse.c
URL: http://svn.apache.org/viewvc/perl/embperl/trunk/epparse.c?rev=1503556&r1=1503555&r2=1503556&view=diff
==============================================================================
--- perl/embperl/trunk/epparse.c (original)
+++ perl/embperl/trunk/epparse.c Tue Jul 16 04:38:26 2013
@@ -46,6 +46,17 @@ static int CmpToken (/*in*/ const void *
}

/* ------------------------------------------------------------------------ */
+/* compare tokens */
+/* ------------------------------------------------------------------------ */
+
+static int RevCmpToken (/*in*/ const void * p1,
+ /*in*/ const void * p2)
+
+ {
+ return strcmp (*((const char * *)p2), *((const char * *)p1)) ;
+ }
+
+/* ------------------------------------------------------------------------ */
/* compare tokens for descending order */
/* ------------------------------------------------------------------------ */

@@ -81,6 +92,14 @@ static int CheckProcInfo (/*i/o*/ r
I32 l ;
HV * pHVProcInfo ;
int n ;
+ int i ;
+ int m ;
+ typedef struct tSortToken
+ {
+ char * pKey ;
+ SV * pSVValue ;
+ } tSortToken ;
+ tSortToken * pSortTokenHash ;
epTHX ;

ppSV = hv_fetch(pHash, "procinfo", sizeof ("procinfo") - 1, 0) ;
@@ -95,11 +114,28 @@ static int CheckProcInfo (/*i/o*/ r

pHVProcInfo = (HV *)SvRV (*ppSV) ;

- hv_iterinit (pHVProcInfo ) ;
- while ((pEntry = hv_iternext (pHVProcInfo)))
- {
- pKey = hv_iterkey (pEntry, &l) ;
- pSVValue = hv_iterval (pHVProcInfo , pEntry) ;
+ m = 0 ;
+ n = HvKEYS (pHVProcInfo) ;
+ pSortTokenHash = (tSortToken *)malloc (sizeof (struct tSortToken) * n) ;
+ hv_iterinit (pHVProcInfo) ;
+ while ((pEntry = hv_iternext (pHVProcInfo)))
+ {
+ pKey = hv_iterkey (pEntry, &l) ;
+ pSVValue = hv_iterval (pHVProcInfo, pEntry) ;
+
+ pSortTokenHash[m].pKey = pKey ;
+ pSortTokenHash[m].pSVValue = pSVValue ;
+ m++ ;
+ }
+
+ qsort (pSortTokenHash, m, sizeof (struct tSortToken), RevCmpToken) ;
+
+ i = 0 ;
+ while (i < m)
+ {
+ pKey = pSortTokenHash[i].pKey ;
+ pSVValue = pSortTokenHash[i].pSVValue ;
+ i++ ;

if (pSVValue == NULL || !SvROK (pSVValue) || SvTYPE (SvRV (pSVValue)) != SVt_PVHV)
{
@@ -227,7 +263,14 @@ int BuildTokenTable (/*i/o*/ register re
I32 l ;
STRLEN len ;
int n ;
+ int m ;
int i ;
+ typedef struct tSortToken
+ {
+ char * pKey ;
+ SV * pToken ;
+ } tSortToken ;
+ tSortToken * pSortTokenHash ;
unsigned char * pStartChars = pTokenTable -> cStartChars ;
unsigned char * pAllChars = pTokenTable -> cAllChars ;
epTHX ;
@@ -297,17 +340,37 @@ int BuildTokenTable (/*i/o*/ register re
}
}

- n = 0 ;
+ m = 0 ;
+ n = HvKEYS (pTokenHash) ;
+ pSortTokenHash = (tSortToken *)malloc (sizeof (struct tSortToken) * n) ;
hv_iterinit (pTokenHash) ;
while ((pEntry = hv_iternext (pTokenHash)))
{
+ pKey = hv_iterkey (pEntry, &l) ;
+ pToken = hv_iterval (pTokenHash, pEntry) ;
+
+ pSortTokenHash[m].pKey = pKey ;
+ pSortTokenHash[m].pToken = pToken ;
+ m++ ;
+ }
+
+ qsort (pSortTokenHash, m, sizeof (struct tSortToken), CmpToken) ;
+
+ n = 0 ;
+ i = 0 ;
+ while (i < m)
+ {
HV * pHash ;
struct tTokenTable * pNewTokenTable ;
char * sContains ;
char * sC ;

- pKey = hv_iterkey (pEntry, &l) ;
- pToken = hv_iterval (pTokenHash, pEntry) ;
+ pKey = pSortTokenHash[i].pKey ;
+ pToken = pSortTokenHash[i].pToken ;
+ i++ ;
+ if (r -> Component.Config.bDebug & dbgBuildToken)
+ lprintf (r -> pApp, "[%d]TOKENKey: %s\n", r -> pThread -> nPid, pKey) ;
+
if (*pKey != '-')
{
if (!SvROK (pToken) || SvTYPE (SvRV (pToken)) != SVt_PVHV)
@@ -404,6 +467,8 @@ int BuildTokenTable (/*i/o*/ register re
}
}

+ free (pSortTokenHash) ;
+
qsort (pTable, numTokens - 1, sizeof (struct tToken), pTokenTable -> bLSearch?CmpTokenDesc:CmpToken) ;



Modified: perl/embperl/trunk/test.pl
URL: http://svn.apache.org/viewvc/perl/embperl/trunk/test.pl?rev=1503556&r1=1503555&r2=1503556&view=diff
==============================================================================
--- perl/embperl/trunk/test.pl (original)
+++ perl/embperl/trunk/test.pl Tue Jul 16 04:38:26 2013
@@ -422,9 +422,16 @@
'errors' => 3,
'version' => 2,
'repeat' => 2,
- 'condition' => '$] >= 5.014000',
+ 'condition' => '$] >= 5.014000 && $] < 5.018000',
'cmpext' => '514',
},
+ 'includeerr2.htm' => {
+ 'errors' => 9,
+ 'version' => 2,
+ 'repeat' => 2,
+ 'condition' => '$] >= 5.018000',
+ 'cmpext' => '518',
+ },
'includeerr3.htm' => {
'errors' => 2,
'condition' => '$] < 5.014000',
@@ -930,6 +937,7 @@
'version' => 2,
'syntax' => 'RTF',
'offline' => 1,
+ 'condition' => '$] < 5.018000',
'param' => [.
{ 'adressen_anrede' => 'Herr', 'adressen_name' => 'Richter', 'adressen_vorname' => 'Gerald', anschreiben_typ => 'Dienstadresse', adressen_dienststelle => 'adr dienst', adressen_dienstbezeichnung => 'DBEZ', adressen_dienst_strasse => 'dstr 1', adressen_priv_strasse => 'pstr 1' },
{ 'adressen_anrede' => 'Herr', 'adressen_name' => 'Richter2', 'adressen_vorname' => 'Gerald2', anschreiben_typ => 'Dienstadresse', adressen_dienststelle => 'adr dienst 2', adressen_dienstbezeichnung => 'DBEZ2' },

Modified: perl/embperl/trunk/test/cmp/escape.htm
URL: http://svn.apache.org/viewvc/perl/embperl/trunk/test/cmp/escape.htm?rev=1503556&r1=1503555&r2=1503556&view=diff
==============================================================================
--- perl/embperl/trunk/test/cmp/escape.htm (original)
+++ perl/embperl/trunk/test/cmp/escape.htm Tue Jul 16 04:38:26 2013
@@ -41,17 +41,17 @@ LAYER: <layer src="http://localhost/t
IMG: <img src="http://localhost/tests?id=abcdefghijklmnopqrstuvwxyz&text=This%20is%20a%20text%20%3F%20%26%20%2B%20-%20%2521" name="%20foo">
FORM: <form action="http://localhost/tests?id=abcdefghijklmnopqrstuvwxyz&text=This%20is%20a%20text%20%3F%20%26%20%2B%20-%20%2521" name="%20foo">

-Hash in A <a href="http://localhost/tests?A=1&amp;B=2">
-Array in A <a href="http://localhost/tests?X=9&amp;Y=8&amp;Z=7">
+^Hash in A <a href=\"http:\/\/localhost\/tests\?(A=1\&amp;B=2|B=2\&amp;A=1)\">
+^Array in A <a href=\"http:\/\/localhost\/tests\?(X=9|Y=8|Z=7)\&amp;(X=9|Y=8|Z=7)\&amp;(X=9|Y=8|Z=7)\">

-Hash in H <a href="http://localhost/tests?A=1&amp;B=2">
+^Hash in H <a href=\"http:\/\/localhost\/tests\?(A=1\&amp;B=2|B=2\&amp;A=1)\">
^Array in H <a href=\"http\:\/\/localhost\/tests\?(X=9|Y=8|Z=7)\&amp;(X=9|Y=8|Z=7)\&amp;(X=9|Y=8|Z=7)\">


^<a href=\"tst.html\?(par1=1|par2=2)&amp;(par1=1|par2=2)\">1<\/a>
-^<a href=\"tst.html\?(par1=1&amp;par2=2|par2=2&amp;par1=1)&amp;par3=3\">2<\/a>
-<a href="tst.html?par1=1&amp;par2=2">3</a>
-<a href="tst.html?par1=1&amp;par2=2&amp;par3=3">4</a>
+^<a href=\"tst.html\?(par1=1&amp;par2=2&amp;par3=3|par2=2&amp;par1=1&amp;par3=3|par2=2&amp;par3=3&amp;par1=1|par1=1&amp;par3=3&amp;par2=2|par3=3&amp;par2=2&amp;par1=1|par3=3&amp;par1=1&amp;par2=2)\">2<\/a>
+^<a href=\"tst.html\?(par1=1&amp;par2=2|par2=2&amp;par1=1)\">3</a>
+^<a href=\"tst.html\?(par1=1&amp;par2=2&amp;par3=3|par2=2&amp;par1=1&amp;par3=3|par2=2&amp;par3=3&amp;par1=1|par1=1&amp;par3=3&amp;par2=2|par3=3&amp;par2=2&amp;par1=1|par3=3&amp;par1=1&amp;par2=2)\">4</a>




Modified: perl/embperl/trunk/test/cmp/hidden.htm
URL: http://svn.apache.org/viewvc/perl/embperl/trunk/test/cmp/hidden.htm?rev=1503556&r1=1503555&r2=1503556&view=diff
==============================================================================
--- perl/embperl/trunk/test/cmp/hidden.htm (original)
+++ perl/embperl/trunk/test/cmp/hidden.htm Tue Jul 16 04:38:26 2013
@@ -9,10 +9,10 @@
<p>&nbsp;</p>

a1<input type="hidden" name="feld1" value="Wert1"><input type="hidden" name="feld2" value="Wert2"><input type="hidden" name="feld3" value="Wert3"><input type="hidden" name="feld4" value="Wert4?foo=bar">
- a2<input type="hidden" name="feld1" value="Pfalz"><input type="hidden" name="feld2" value="Rhein&quot;hessen&quot;&amp;Pfalz">
+^ a2(<input type=\"hidden\" name=\"feld1\" value=\"Pfalz\"><input type=\"hidden\" name=\"feld2\" value=\"Rhein&quot;hessen&quot;&amp;Pfalz\">|<input type=\"hidden\" name=\"feld2\" value=\"Rhein&quot;hessen&quot;&amp;Pfalz\"><input type=\"hidden\" name=\"feld1\" value=\"Pfalz\">)
a3<input type="hidden" name="feld2" value="Rhein&quot;hessen&quot;&amp;Pfalz">
a4<input type="hidden" name="feld2" value="Rhein&quot;hessen&quot;&amp;Pfalz">
- a5<input type="hidden" name="feld1" value="Pfalz"><input type="hidden" name="feld2" value="Rhein&quot;hessen&quot;&amp;Pfalz">
+^ a5(<input type=\"hidden\" name=\"feld1\" value=\"Pfalz\"><input type=\"hidden\" name=\"feld2\" value=\"Rhein&quot;hessen&quot;&amp;Pfalz\">|<input type=\"hidden\" name=\"feld2\" value=\"Rhein&quot;hessen&quot;&amp;Pfalz\"><input type=\"hidden\" name=\"feld1\" value=\"Pfalz\">)
a6<input type="hidden" name="feld2" value="Rhein&quot;hessen&quot;&amp;Pfalz">
a7<input type="hidden" name="feld2" value="Rhein&quot;hessen&quot;&amp;Pfalz">
a8<input type="hidden" name="feld4" value="Wert4?foo=bar"><input type="hidden" name="feld3" value="Wert3"><input type="hidden" name="feld2" value="Wert2"><input type="hidden" name="feld1" value="Wert1">

Modified: perl/embperl/trunk/test/cmp/include.htm
URL: http://svn.apache.org/viewvc/perl/embperl/trunk/test/cmp/include.htm?rev=1503556&r1=1503555&r2=1503556&view=diff
==============================================================================
--- perl/embperl/trunk/test/cmp/include.htm (original)
+++ perl/embperl/trunk/test/cmp/include.htm Tue Jul 16 04:38:26 2013
@@ -43,7 +43,7 @@
<P><table><tr><td>fdat1</td><td>text1</td></tr><tr><td>test1</td><td>value1</td></tr></table></P>
<H1> 7b.) Presetup \%fdat</H1>

-<P><table><tr><td>fdat2</td><td>text2</td></tr><tr><td>test2</td><td>value2</td></tr></table></P>
+^<P><table><tr><td>(fdat2<\/td><td>text2<\/td><\/tr><tr><td>test2<\/td><td>value2|test2<\/td><td>value2<\/td><\/tr><tr><td>fdat2<\/td><td>text2)<\/td><\/tr><\/table><\/P>
<H1> 7c.) Presetup \@ffld</H1>

<P><table></table></P> @ffld = fdat3 test3

Added: perl/embperl/trunk/test/cmp/includeerr2.htm518
URL: http://svn.apache.org/viewvc/perl/embperl/trunk/test/cmp/includeerr2.htm518?rev=1503556&view=auto
==============================================================================
--- perl/embperl/trunk/test/cmp/includeerr2.htm518 (added)
+++ perl/embperl/trunk/test/cmp/includeerr2.htm518 Tue Jul 16 04:38:26 2013
@@ -0,0 +1,71 @@
+<HTML><HEAD><TITLE>Embperl Error</TITLE></HEAD><BODY bgcolor="#FFFFFF">
+<H1>Internal Server Error</H1>
+The server encountered an internal error or misconfiguration and was unable to complete your request.<P>
+^Please contact the server administrator,.*?and inform them of the time the error occurred, and anything you might have done that may have caused the error.<P><P>
+<table cellspacing='2' cellpadding='5'>
+<tr bgcolor='#eeeeee'><td>
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+^\[\d+\]ERR: 32: Warning in Perl code: Use of uninitialized value \$Embperl::__\d+::param\[0\] in concatenation \(\.\) or string at .+incsub.htm line 6.
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+</td></tr>
+<tr bgcolor='#eeeeee'><td>
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+^\[\d+\]ERR: 32: Warning in Perl code: Use of uninitialized value \$Embperl::__\d+::param\[0\] in concatenation \(\.\) or string at .+incsub.htm line 6.
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+</td></tr>
+<tr bgcolor='#eeeeee'><td>
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+^\[\d+\]ERR: 32: Warning in Perl code: Use of uninitialized value \$Embperl::__\d+::param\[0\] in concatenation \(\.\) or string at .+incsub.htm line 6.
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+</td></tr>
+<tr bgcolor='#eeeeee'><td>
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+^\[\d+\]ERR: 32: Warning in Perl code: Use of uninitialized value \$Embperl::__\d+::param\[0\] in concatenation \(\.\) or string at .+incsub.htm line 6.
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+</td></tr>
+<tr bgcolor='#eeeeee'><td>
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+^\[\d+\]ERR: 24: Error in Perl code: Can't locate object method &quot;is&quot; via package &quot;here&quot; \(perhaps you forgot to load &quot;here&quot;\?\) at .+incerr.htm line 6.
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+</td></tr>
+<tr bgcolor='#eeeeee'><td>
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+^\[\d+\]ERR: 32: Warning in Perl code: Unquoted string &quot;table&quot; may clash with future reserved word at .+incerr.htm line 6.
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+</td></tr>
+<tr bgcolor='#eeeeee'><td>
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+^\[\d+\]ERR: 32: Warning in Perl code: Unquoted string &quot;td&quot; may clash with future reserved word at .+incerr.htm line 8.
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+</td></tr>
+<tr bgcolor='#eeeeee'><td>
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+^\[\d+\]ERR: 24: Error in Perl code: syntax error at .+line 4, near &quot;\+\]&quot;
+^<br>&nbsp;&nbsp;&nbsp;&nbsp;Unknown regexp modifier &quot;\/t&quot; at
+^<br>&nbsp;&nbsp;&nbsp;&nbsp; \(Might be a runaway multi-line \/\/ string starting on line 10\)
+^<br>&nbsp;&nbsp;&nbsp;&nbsp;Unknown regexp modifier &quot;\/r&quot; at
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+</td></tr>
+<tr bgcolor='#eeeeee'><td>
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+^\[\d+\]ERR: 32: Warning in Perl code: Unquoted string &quot;table&quot; may clash with future reserved word at .+incerr.htm line 6.
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+</td></tr>
+<tr bgcolor='#eeeeee'><td>
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+^\[\d+\]ERR: 32: Warning in Perl code: Unquoted string &quot;td&quot; may clash with future reserved word at .+incerr.htm line 8.
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+</td></tr>
+<tr bgcolor='#eeeeee'><td>
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+^\[\d+\]ERR: 24: Error in Perl code: syntax error at .+line 4, near &quot;\+\]&quot;
+^<br>&nbsp;&nbsp;&nbsp;&nbsp;Unknown regexp modifier &quot;\/t&quot; at
+^<br>&nbsp;&nbsp;&nbsp;&nbsp; \(Might be a runaway multi-line \/\/ string starting on line 10\)
+^<br>&nbsp;&nbsp;&nbsp;&nbsp;Unknown regexp modifier &quot;\/r&quot; at
+<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+</td></tr>
+</table>
+<br>
+^Embperl
+</BODY></HTML>
+



---------------------------------------------------------------------
To unsubscribe, e-mail: embperl-cvs-unsubscribe@perl.apache.org
For additional commands, e-mail: embperl-cvs-help@perl.apache.org