view Lib/IMPL/Object/AutoDispose.pm @ 320:28eba7e0c592

*web application action: added method to access HTTP request header.
author sergey
date Thu, 16 May 2013 17:16:41 +0400
parents 6253872024a4
children
line wrap: on
line source

package IMPL::Object::AutoDispose;
use strict;

sub new {
    my $self = shift;
        
    if (ref $self) {
        return ${$self}->new(@_);
    } else {
        my $obj = shift;
        return bless \$obj, $self;        
    }    
}

sub isa {
    ${shift(@_)}->isa(@_);
}

sub can {
    ${shift(@_)}->can(@_);
}

sub DESTROY {
    ${shift(@_)}->Dispose();
}

sub AUTOLOAD {
    our $AUTOLOAD;
    my ($method) = ($AUTOLOAD =~ m/(\w+)$/);
    
    no strict 'refs';
    
    goto &{*{$AUTOLOAD} = sub {
        ${shift(@_)}->$method(@_);
    }};
}

1;