using the \ (reference) operator does not refer to a copy
of the original array, but to the array itself, so whatever
is populating @_ must empty it afterwards. i believe this
is because it uses a mechanism along the lines of local.
to take a reference to a copy of your array, do the
following:
$self->{bar} = ref($_[0]) ? $_[0] : [ @_ ];
this copies @_ into an anonymous array and returns a
reference.