sub TIEARRAY { my $class=shift; my $bits =shift; no strict 'refs'; my $self = bless [\%{$class.'::FIELDS'}], $class; $self->{bits} = $bits; if (@_ and eval { $_[0]=$_[0]; 1} ) { $self->{vec} = \$_[0]; } else { my $vec=@_ ? $_[0] : ""; $self->{vec} = \$vec; } $self->{size} = _BYTES2IDX($self, length ${$self->{vec}}); return $self; } #### sub TIEARRAY { my($class, $bits, $vec) = @_; no strict 'refs'; my $self = bless [\%{$class.'::FIELDS'}], $class; $self->{bits} = $bits; $self->{vec} = ref $vec ? $vec : \$vec; $self->{size} = _BYTES2IDX($self, length ${$self->{vec}}); return $self; }