.4 .6 .1 .3 .5 .1 .0 .2 .1 .5 .7 .1 #### my @keys = qw(start stop step); for my $type (@keys) { print $point->{$type}, "\t"; } #### my @keys = qw(start stop step); for my $type (@keys) { next unless exists $point->{$type}; print $point->{$type}, "\t"; } #### my %weights = ( start => 10, stop => 20, step => 30 ); for my $type ( sort { $weights{$a} <=> $weights{$b} } keys %$point ) { print $point->{$type}, "\t"; } #### my %weights = do { my $i = 0; map { $_ => $i++ } qw(start stop step other stuff in order here) };