#!/usr/bin/perl

# Una possibile soluzione all'Esercizio 2 (non l'unica)

use strict;
use warnings;

my $folder = shift or die "Usage: $0 FOLDER\n";

my %type_size_hash = ();

for (`ls "$folder"`) { # Tutti i file nella cartella passata come parametro
    chomp;

    if(-r "$folder/$_") {
        my $type = (split(": ", `file --mime-type "$folder/$_"`))[-1]; # Tipo (mime type) del file, utilizzando il comando `file` (con parametro --mime-type)
        chomp $type;
        my $size = (split(" ", (`du -b "$folder/$_" 2>&1`)[-1]))[0]; # Dimensione del file, utilizzando il comando `du` (con parametro -b per avere la dimensione in byte e -s per avere solo il totale)
        
        $type_size_hash{$type} += $size;
    }

}

while (my ($type, $size) = each %type_size_hash) {
    print "$type : $size\n";
}
