1*91f110e0Safresh1use strict; 2*91f110e0Safresh1use warnings; 3*91f110e0Safresh1 4*91f110e0Safresh1package MyClass; 5*91f110e0Safresh1 6*91f110e0Safresh1sub new 7*91f110e0Safresh1{ 8*91f110e0Safresh1 my $class = shift; 9*91f110e0Safresh1 10*91f110e0Safresh1 my $self = bless {}, $class; 11*91f110e0Safresh1 12*91f110e0Safresh1 $self->_init(@_); 13*91f110e0Safresh1 14*91f110e0Safresh1 return $self; 15*91f110e0Safresh1} 16*91f110e0Safresh1 17*91f110e0Safresh1sub _init 18*91f110e0Safresh1{ 19*91f110e0Safresh1 my $self = shift; 20*91f110e0Safresh1 21*91f110e0Safresh1 $self->{foo} = 'bar'; 22*91f110e0Safresh1 23*91f110e0Safresh1 return; 24*91f110e0Safresh1} 25*91f110e0Safresh1 26*91f110e0Safresh1sub greet 27*91f110e0Safresh1{ 28*91f110e0Safresh1 my ($self, $msg) = @_; 29*91f110e0Safresh1 30*91f110e0Safresh1 print "$msg - $self->{foo}\n"; 31*91f110e0Safresh1 32*91f110e0Safresh1 return; 33*91f110e0Safresh1} 34*91f110e0Safresh1 35*91f110e0Safresh11; 36*91f110e0Safresh1 37*91f110e0Safresh1package main; 38*91f110e0Safresh1 39*91f110e0Safresh1my $obj = MyClass->new; 40*91f110e0Safresh1 41*91f110e0Safresh1$obj->greet("Hello"); 42*91f110e0Safresh1 43*91f110e0Safresh11; 44