in reply to Calling Subs
The second example is best used when you need to store state information in an object. That way, the method can do it's thing based on what the state of the object is.
The fact that they return the same value is because it is the same function which happens to not use member variables. If that function used some member varibles that were specific to a particular instance of the class - then you would see a difference.
Here is an example:
Jeff#!/usr/bin/perl -w use strict; package foo; sub new { my ($class) = @_; return bless { foo => 'bar', }, $class; } sub baz { my ($self) = shift; print $self->{'foo'}, "\n"; } package main; my $obj = new foo; $obj->baz; # prints bar &foo::baz; # unitialized value warning issued
L-LL-L--L-LL-L--L-LL-L--
-R--R-RR-R--R-RR-R--R-RR
F--F--F--F--F--F--F--F--
(the triplet paradiddle)
|
|---|