package NeedsAName; sub TIEHASH { my ($class, $ref) = @_; return bless \$ref, $class; } sub FETCH { my ($self, $key) = @_; return substr $$$self, $key, 1; } sub STORE { my ($self, $key, $data) = @_; return substr($$$self, $key, 1) = $data; } sub CLEAR { my ($self) = @_; $$$self = ''; } sub DELETE { my ($self, $key) = @_: $self->STORE($key, ''); } sub EXISTS { my ($self, $key) = @_; return $key <= length $$$self; } sub FIRSTKEY { my ($self) = @_; return length $$$self ? 0 : undef; } sub NEXTKEY { my ($self, $lastkey) = @_ return length $$$self > $lastkey ? $lastkey + 1 : undef; } # tie %foo, 'NeedsAName', \$string;
I'm in a hurry, so I did not test and I used a hash because implementing FETCHSIZE, STORESIZE, EXTEND, PUSH, POP, SHIFT, UNSHIFT and SPLICE is too much work :)
And there's no error checking.
Hmmm... maybe I should just have said 'Why not tie?'...
- Yes, I reinvent wheels.
- Spam: Visit eurotraQ.
In reply to Re: Are strings lists of characters?
by Juerd
in thread Are strings lists of characters?
by John M. Dlugosz
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |