bob@dhw68k.cts.com (Bob Best) (03/22/88)
The following perl test script manifests bugs when executed under patchlevel 29
as compiled to run under SCO Xenix 386 V2.2.2.  The bugs are evident in the
output that follows the script listing.  Tests 1a,b,c clearly indicate that
perl is not properly handling the assignment operation as applied to strings
using the same variable on both sides of the '=' sign.  Notice that the
bug is eliminated by concatenation of a null string either before or after
the test string expression.
#!./perl
#  op.assign - test assignment using same variable left and right of '='
$x = "dog";
$x = "#1a\t:$x: eq :dog:\n";
print $x;
$x = "dog";
$x = ""."#1b\t:$x: eq :dog:\n";
print $x;
$x = "dog";
$x = "#1c\t:$x: eq :dog:\n"."";
print $x;
$x = "dog";
$x = "#2\t:"."$x".": eq :dog:\n";
print $x;
$x = "dog";
$x = "#3\t:"."$x: eq :dog:\n";
print $x;
$x = "dog";
$x = "#4\t:$x".": eq :dog:\n";
print $x;
$x = "dog";
$x = "#5\t:".$x.": eq :dog:\n";
print $x;
$x = "dog";
$y = "dog";
$x = "#6a\t:$x: eq :$y:\n";
print $x;
$x = "dog";
$y = "dog";
$y = "#6b\t:$x: eq :$y:\n";
print $y;
$x = "dog";
$y = "dog";
$y = "#6c\t:$x: e"."q :$y:\n";
print $y;
$x = "dog";
$y = "#7\t:";
$z = ": eq :dog:\n";
$x = "$y"."$x"."$z";
print $x;
$x = "dog";
$y = "#8\t:";
$z = ": eq :dog:\n";
$x = $y.$x.$z;
print $x;
$x = "dog";
$y = "#9\t:";
$z = ": eq :dog:\n";
$x = "$y$x$z";
print $x;
$x = "dog";
$y = "#10\t:";
$z = ": eq :dog:\n";
$x = "$y$x"."$z";
print $x;
$x = "dog";
$y = "#11\t:";
$z = ": eq :dog:\n";
$x = "$y"."$x$z";
print $x;
$x = "dog";
$y = "#12\t:";
$z = ": eq :dog:\n";
$x = "$y"."$x"."$z";
print $x;
$x = "dog";
print "#13\t:";
print $x;
print ": eq :dog:\n";
$x = "dog";
$x = "$x";
print "#14\t:";
print $x;
print ": eq :dog:\n";
$x = "dog";
$x = "$x"."";
print "#15\t:";
print $x;
print ": eq :dog:\n";
$x = "dog";
$x = ""."$x";
print "#16\t:";
print $x;
print ": eq :dog:\n";
This is the output produced by running the script under perl patchlevel 29.
#1a	:#1a	:: eq :dog:
#1b	:dog: eq :dog:
#1c	:dog: eq :dog:
#2	:dog: eq :dog:
#3	:dog: eq :dog:
#4	:dog: eq :dog:
#5	:dog: eq :dog:
#6a	:#6a	:: eq :dog:
#6b	:dog: eq :#6b	:dog: eq ::
#6c	:dog: eq :dog:
#7	:dog: eq :dog:
#8	:dog: eq :dog:
#9	:#9	:: eq :dog:
#10	:dog: eq :dog:
#11	:dog: eq :dog:
#12	:dog: eq :dog:
#13	:dog: eq :dog:
#14	:: eq :dog:
#15	:dog: eq :dog:
#16	:dog: eq :dog:
-- 
Bob Best
uucp: ...{trwrb,hplabs}!felix!dhw68k!bob	InterNet: bob@dhw68k.cts.comdarragh@maths.tcd.ie (Darragh Delaney) (12/07/89)
I was wondering if anyone out there might perhaps have parts 20-24 of the recent posting of Perl on the unix sources newsgroup as it never arrived here (please don't suggest ftp-ing to an archive site as I can't) thanx and ciao Filo. --------------------------------------------------------------- Darragh J. Delany, darragh@maths.tcd.ie Dept. of Computer Science, Trinity College, Dublin, Rep. of Ireland