<< Previous Contents Next >>

Side-effect Example: Result of Refactoring

package My::SessionManager;

sub new {
    my ( $class, %params ) = @_;
    return bless( \%params, $class );
}

sub create {
    my ( $self, $session_id ) = @_;
    my %session = ();
    tie %session, $self->{impl_class}, $session_id,
                  $self->{impl_params};
    return %session;
}

sub save {
    my ( $self, %session ) = @_;
    untie %session;
}

1;