http://qs321.pair.com?node_id=11128745


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

Sure thing. But do you understand why it works? Check out perlootut and perlobj.

  • Comment on Re^3: List::Compare asking for two references

Replies are listed 'Best First'.
Re^4: List::Compare asking for two references
by Lotus1 (Vicar) on Feb 26, 2021 at 00:06 UTC

    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.

      Exactly. Well done. :-)