On Feb 1, R. Joseph Newton said:
>vaishnavi krishnamurthy wrote:
>
>>Can anyone tell me how I can do the following - all the elements in my
>>array of unkown size should be initialised to the value 0 ? > > thanks,
>>vaish.
>
>No. If the array is of uknown size, it is not possible to do *anything*
>to all elements. Therefore no one can tell you how to do any particular
>thing.
>
>There are, on the other hand, ways to ensure that each member added to an
>array is initialized to some chosen value. Assign 0 to each as it is
>added, for one.
You could use a Tie:: module to make array elements default to 0.
package Tie::Array::Zero;
require Tie::Array;
@ISA = qw( Tie::StdArray );
sub FETCH {
my ($self, $idx) = @_;
$self->[$idx] = 0 if not defined $self->[$idx];
return $self->[$idx];
}
1;
Poof. That's all you need. Save it as TAZ.pm if you want.
use TAZ;
tie @x, 'Tie::Array::Zero';
print $x[5]; # 0
--
Jeff "japhy" Pinyan [EMAIL PROTECTED] http://www.pobox.com/~japhy/
RPI Acacia brother #734 http://www.perlmonks.org/ http://www.cpan.org/
<stu> what does y/// stand for? <tenderpuss> why, yansliterate of course.
[ I'm looking for programming work. If you like my work, let me know. ]
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>