I belive '+' has some importance.
For me, return values of +0, -0, and 0 are indistinguishable from each other - which means that the '+' has no significance at all:
C:\_32>perl -MDevel::Peek -e "Dump(+0)"
SV = IV(0x1fe2d28) at 0x343cbc
REFCNT = 1
FLAGS = (PADBUSY,PADTMP,IOK,READONLY,pIOK)
IV = 0
C:\_32>perl -MDevel::Peek -e "Dump(-0)"
SV = IV(0x432d2c) at 0xd73cec
REFCNT = 1
FLAGS = (PADBUSY,PADTMP,IOK,READONLY,pIOK)
IV = 0
C:\_32>perl -MDevel::Peek -e "Dump(0)"
SV = IV(0x2492d28) at 0x23cbc
REFCNT = 1
FLAGS = (PADBUSY,PADTMP,IOK,READONLY,pIOK)
IV = 0
(Replace the double quotes with single quotes if you're on a *nix-type operating system.)
Cheers,
Rob