sub new { return bless [], shift; } sub addItems { my $self= shift; unshift @$self, @_; } sub setList { my $self= shift; my( $ref )= @_; if( 1 == @_ && ref($ref) ) { @$self= @$ref; } else { @$self= @_; } } sub getItem { my $self= shift; my $idx= shift; return $self->[$idx]; } sub getList { my $self= shift; if (wantarray) { return @$self; } else { return [@$self]; } }