Is this sort works also for characters?
Yes, by default, sort sorts alphabetically. Consider:
12:36 >perl -Mstrict -wE "my @array = ('c', 'bb', 'aaa'); say for sort
+ @array;"
aaa
bb
c
12:37 >
Here sort puts 'aaa' first, because 'a', its first character, comes alphabetically before 'b' and 'c'. Similarly:
12:37 >perl -Mstrict -wE "my @array = ('3', '22', '111'); say for sort
+ @array;"
111
22
3
12:39 >
puts '111' first because '1' comes alphabetically before '2' and '3'.
Note that sort @array is shorthand for sort { $a cmp $b } @array; cmp compares alphabetically. To sort numerically, use <=> instead of cmp:
12:39 >perl -Mstrict -wE "my @array = ('3', '22', '111'); say for sort
+ { $a <=> $b } @array;"
3
22
111
12:43 >
See:
Hope that helps,
|