use DirHandle; use Cwd; use File::stat; $strarting_dir = cwd; &creaalbero($strarting_dir); &alkilo($dimensione); print $dimensione; sub creaalbero { chdir $_; $cwd = cwd; $percorso = "$cwd"."\\"; $dh = new DirHandle; $dh->open("$_"); @lista = ($dh->read()); shift @lista; shift @lista; foreach $dir (<*>) { if (-d $dir) { chdir $dir; &creaalbero(); $albero{"$percorso"} = directory; chdir".."; } if (-f $dir) { $current = cwd; $albero{"$current"."\\"."$dir"} = file; $stat = stat ($dir); $dimensione += $stat->size; } } } sub alkilo { $dimensione = $dimensione / 1024; @grand = qw/Tb Gb Mb Kb /; if ( $dimensione >= 1024 ) { pop @grand ; &alkilo($dimensione) } unless ( $dimensione == 0 ) { $molt = pop @grand } $dimensione =~ /^\d*\.\d?\d?/; $dimensione = "$&" . " " . "$molt"; }