The shift function removes the first element of an array shortening the array by 1 element, presumably this line is in a subroutine so it would be acting on the @_ array. In this case the value shifted off of the array is being assigned to $self.

Here, we see that $self is hash reference and one of its keys is '_invert'. Since it's being used in void context, my assumption is that the '_invert' key is being added to the hash and its value will default to undef.

If the '_invert' key was already in the hash, then that line would do nothing and would be pointless.