in reply to *a=*b;@a=@b problem

Not sure what you are talking about. Perl does have checks in place to detect simple cases like ($a,$b)=($b,$a) and preserve the old values long enough to do the assignment as intended, but there is no @a=@b;push@a,@c optimization such as you describe.

That said, there is clearly a bug here that should be reported.