in reply to Calling Subs

In the first case, when temp() is called @_ contains ('Send'), while in the second case @_ contains ($obj). Since temp() doesn't use @_, that difference isn't significant here. However, if you have a method that needs to access instance data, you'd need to call the method on a specific instance, of course. For example:
package Send; sub poke { my $self = shift; $self->{thingy} = 1; } sub new { return bless {}, $_[0]; } package main; my $obj = new Send; $obj->poke(); # good Send->poke(); # bad
Really it just depends on what you want the method to do.