--- gpt.pm.tv	2012-04-06 09:49:39.652735735 +0200
+++ gpt.pm	2012-04-06 09:49:22.447714279 +0200
@@ -31,16 +31,8 @@
         $p{part_number} => \%p;
     } c::get_disk_partitions($hd->{file});
 
-    my @pt = map {
-	my $part_number = $_;
-	if ($parts{$part_number}) {
-	    $parts{$part_number};
-	} else {
-	    my %p;
-	    $p{part_number} = $part_number;
-	    \%p;
-	}
-    } (1..$nb_primary);
+    my @pt = map { +{ part_number => $_ } } 1..$nb_primary;
+    $pt[$_-1] = $parts{$_} foreach keys %parts;
 
     [ @pt ], $info;
 }
