>>и знаешь чего, мне так кажеться что с приоритетами тут не все
>>в порядке
>Не, с приоритетами всё впорядке, хэши создаются как надо...
>Скорее всего ссылку как-то не так передаю, вопрос в том, как?:) ответ очень простой возми за правило ставить
#!/usr/bin/perl -w
use strict;
хотябы на этапе разработки программы!!!
ну а так вот:
#!/usr/bin/perl -w
use strict;
use Data::Dumper;
#change this for deep search
my @rdeep=(4,0);
#my @rdeep=(2,0);
my $debugit=1;
sub cfg_readbranch
{
$rdeep[0] == $rdeep[1]?do{print"max recdeep: $rdeep[0], stop execute\n";return}:$rdeep[1]++ if $debugit;
my ($cbranch, $C) = @_;
my (@branches, @keys, @dir) = ();
print "start scan $cbranch ...\n";
opendir(Z, $cbranch) or do{ print "can?t opendir $cbranch: $!\n"; return 0 };
@dir = readdir Z;
while(<@dir>)
{
next if /^\./;
push@branches,$_ if -d "$cbranch/$_";
push@keys,$_ if -f "$cbranch/$_";
}
closedir Z;
#$C{$_}=oslurp("$cbranch/$_") for @keys;
$C->{$_}="$cbranch/$_" for @keys;
foreach ( @branches) {
$C->{$_}= {};
cfg_readbranch("$cbranch/$_", $C->{$_} );
}
return 1;
}
my %C;
print Dumper(\%C),"\n", if cfg_readbranch('./testdir', \%C);
-------------------------------
output:
$VAR1 = {
'file2' => './testdir/file2',
'file1' => './testdir/file1',
'file3' => './testdir/file3',
'dir2' => {},
'dir1' => {
'dir5' => {},
'dir6' => {
'file1' => './testdir/dir1/dir6/file1',
'file12' => './testdir/dir1/dir6/file12'
}
}
};