http://qs1969.pair.com?node_id=1077473


in reply to directory tree to hash of arrays

Perhaps the following will be helpful:

use strict; use warnings; use Cwd; use JSON; my %hash; my $currDir = Cwd::cwd(); push @{ $hash{$currDir} }, { name => $_, size => ( stat($_) )[7] } for + <*>; my $j = encode_json \%hash; print $j;

Sample output:

{"/home/user/programming/Perl/tmp":[{"name":"File1.txt","size":63},{"n +ame":"File2.txt","size":55},{"name":"temp5.pl","size":196},{"name":"t +est.pl","size":197}]}

When run, it gets the current dir, uses it as the hash key whose value is a reference to an array of (file and filesize) hashes. That hash is later json encoded. Substitute your own path in $currDir, as needed.