|
Тема
|
broia na izmereniata na masiv
|
|
Автор | chainik (Нерегистриран) |
Публикувано | 06.06.05 17:34 |
|
dobar den ,
niakoi ot vas znae li kak se poluchava broia na izmereniata na masiv
v perl..
zasega sum razbral kak da nameria broaia na elementite..
blagodaria za pomoshta..
| |
Тема
|
Re: broia na izmereniata na masiv
[re: chainik]
|
|
Автор |
sdg (shebang addict) |
Публикувано | 07.06.05 11:30 |
|
Масивите в Perl са само едномерни, няма шега
Многомерни масиви се реализират чрез референции (кхм, указатели). Виж следния пример (и отговор на въпроса, надявам се):
#!/usr/bin/perl
use warnings;
use strict;
sub arraydepth
{
my $arrayref = shift;
my $depth = 0;
while ('ARRAY' eq ref($arrayref))
{
$depth++;
$arrayref = $arrayref->[0];
}
return $depth;
}
my @a = (1,2);
my @b = (3,4);
my @c = (5,6);
my @d = (7,8);
my @w = (\@a,\@b);
my @t = (\@c,\@d);
my @x = (\@w,\@t);
print
arraydepth('X'), " ",
arraydepth(\@a), " ",
arraydepth(\@w), " ",
arraydepth(\@x), "\n";
RTFM!
--sdg
| |
Тема
|
Re: broia na izmereniata na masiv
[re: chainik]
|
|
Автор | level 8 (Нерегистриран) |
Публикувано | 08.06.05 01:34 |
|
po-gorniq primer e nelosh, no nepulen. sledva da razberesh kakvo tochno tursish
v masiva, kakvi strukturi - list, array, hash? sledva i rekursiq. no v obshtiq sluchai:
my @x = ( [ 0, 1 ], { 0 => 1 }, sub{}, \$_, \*DATA );
print+( join $/, map{ ref }@x ),$/ x 2;
print 'refs: ', scalar grep ref, @x;
__END__
ARRAY
HASH
CODE
SCALAR
GLOB
refs: 5
| |
|
|
|
|