#!/usr/bin/perl use strict; use warnings; use Cwd; my $dir = getcwd; opendir(DIR, "$dir"); my @array = readdir(DIR); closedir(DIR); my %hash; my %for; my @size; my $data; format STDOUT_TOP = Dateiname Dateigroesse ==================================== . foreach(@array) { my $i = 0; $hash{$_} = (-s $_); my $file = (-s $_); $for{$file} = $_; $i++; push @size, $file; } my @sort = sort { $a <=> $b } @size; foreach(@sort) { if (-f, "$for{$_}" && !(-d "$for{$_}")) { my $data = $_; if ($_ < 1024) { $_ .= " bytes"; } elsif ( $_ > 1024 && $_ < 1048576) { $_ = sprintf("%.2f", $_ / 1024); $_ .= " kb"; } elsif ( $_ > 1048576 && $_ < 1099511627776) { $_ = sprintf("%.2f", $_ / 1048576); $_ .= " mb"; } else { $_ = sprintf("%.2f", $_ / 1099511627776); $_ .= " gb"; } format STDOUT = @<<<<<<<<<<<<<<<<< @>>>>>>>>>>>>>> $for{$data}, $_ . write; } }