my @df_k = split(/\n/, `df -k`); shift(@df_k); # Remove header. my @sorted_by_drive = sort { $a->[5] cmp $b->[5] } map { [ split(/\s+/, $_, 6) ] } @df_k; use Data::Dumper (); print(Data::Dumper->Dump( [ \@sorted_by_drive ], [qw( $sorted_by_drive )], ));