Add EXISTS and DELETE methods to Env.pm
Vincent Pit [Tue, 10 Nov 2009 21:29:07 +0000 (22:29 +0100)]
lib/Env.pm

index eb9187f..deac5fc 100644 (file)
@@ -1,6 +1,6 @@
 package Env;
 
-our $VERSION = '1.00';
+our $VERSION = '1.01';
 
 =head1 NAME
 
@@ -132,8 +132,7 @@ sub TIEARRAY {
 
 sub FETCHSIZE {
     my ($self) = @_;
-    my @temp = split($sep, $ENV{$$self});
-    return scalar(@temp);
+    return 1 + scalar(() = $ENV{$$self} =~ /\Q$sep\E/g);
 }
 
 sub STORESIZE {
@@ -161,6 +160,19 @@ sub STORE {
     return $value;
 }
 
+sub EXISTS {
+    my ($self, $index) = @_;
+    return $index < $self->FETCHSIZE;
+}
+
+sub DELETE {
+    my ($self, $index) = @_;
+    my @temp = split($sep, $ENV{$$self});
+    my $value = splice(@temp, $index, 1, ());
+    $ENV{$$self} = join($sep, @temp);
+    return $value;
+}
+
 sub PUSH {
     my $self = shift;
     my @temp = split($sep, $ENV{$$self});
@@ -232,4 +244,11 @@ sub FETCH {
     return $ENV{$$self . ';' . $index};
 }
 
+sub EXISTS {
+    my ($self, $index) = @_;
+    return $index < $self->FETCHSIZE;
+}
+
+sub DELETE { }
+
 1;