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

That is curious. And just to be a little more explicit:
@a = (); @b = (); *a = *b; @b = (1,2); print "@a\n"; # 1 2 @b = @a; print "@a\n"; # uninit warnings (x2) print "@b\n"; # uninit warnings (x2)