sort

#
# sorting strings: 
#
@ascending = sort @unsorted;
@ascending = sort { $a cmp $b} @unsorted;
#
# sorting numbers
#
@ascending = sort { $a <=> $b} @unsorted;
@descending = sort { $b <=> $a} @unsorted;
#
# sort keys of a dictionary
#
foreach my $unit ( sort keys %dev_h)
{
...
}
#
# adc names, make sure adc2 precedes adc11 and adcX precedes vfcX 
#
my @arr = qw( adc1 adc2 adc11 vfc1 vfc2 vfc11); 
@arr = sort { $a =~ /(\D+)(\d+)/; # e.g.: VFC2
              my $a_pre = $1;     # VFC
	      my $a_i = $2;       # 2
	      $b =~ /(\D+)(\d+)/;
	      my $b_pre = $1; 
	      my $b_i = $2; 
              #
              # if the prefixes differ, use them to sort ...
              #
	      if( $a_pre ne $b_pre)
	      {
		  $a_pre cmp $b_pre;
	      }
              #
              # ... otherwise use the numbers
              #
	      else
	      {
		  $a_i <=> $b_i;
	      }
	  } @arr;