in reply to Re^3: List::Compare asking for two references
in thread List::Compare asking for two references

What I wondered about was why my original version gave that error.

In looking at the source for List::Compare I see that the first thing the new() method does is shift the class name from @_. Since I only provided two arguments the first one got shifted and the error is produced since there is only one remaining. I suppose when you use the correct '->' syntax to call new() it puts a copy of the class name into @_ as the first item. I see in the link you provided, Method Invocation, that this is correct.

The syntax I used accidentally is for calling a package subroutine so it accessed new() directly.