Mercurial > pub > Impl
comparison Lib/IMPL/Object/List.pm @ 2:78cd38551534
in develop
author | Sergey |
---|---|
date | Mon, 10 Aug 2009 17:39:08 +0400 |
parents | |
children | 2e546a5175dd |
comparison
equal
deleted
inserted
replaced
1:3b418b134d8c | 2:78cd38551534 |
---|---|
1 package IMPL::Object::List; | |
2 use strict; | |
3 use warnings; | |
4 | |
5 use base qw(IMPL::Object::ArrayObject); | |
6 | |
7 sub as_list { | |
8 return $_[0]; | |
9 } | |
10 | |
11 sub Append { | |
12 push @{$_[0]}, @_{1 .. @$_-1}; | |
13 } | |
14 | |
15 sub RemoveLast { | |
16 return pop @{$_[0]}; | |
17 } | |
18 | |
19 sub AddFirst { | |
20 return unshift @{$_[0]}, $_[1]; | |
21 } | |
22 | |
23 sub RemoveFirst { | |
24 return shift @{$_[0]}; | |
25 } | |
26 | |
27 sub Count { | |
28 return scalar @{$_[0]}; | |
29 } | |
30 | |
31 sub InsertAt { | |
32 my ($this,$index,@val) = @_; | |
33 | |
34 splice @$this,$index,0,@val; | |
35 } | |
36 | |
37 sub RemoveAt { | |
38 my ($this,$index,$count) = @_; | |
39 | |
40 $count ||= 1; | |
41 | |
42 return splice @$this,$index,$count; | |
43 } | |
44 | |
45 1; |