I first thought it would never work because 10.1 would come before 2.1, but then, thinking back about it, I wondered whether it might actually work thanks to the coercion of version numbers into decimal numbers imposed by the <=> operator, but I wasn't quite sure. So, I just tried it, and yes, it does work properly:
$ perl -e 'use strict; > use warnings; > use feature "say"; > > my @array = qw(Patch_11.4 Patch_1.0 Patch_2.0 Patch_3.1 Patch_5.0 Pa +tch_4.2 Patch_6.0 > Patch_11.0 Patch_7.0 Patch_8.0 Patch_9.3 Patch_10.2 P +atch_11.2); > my @array2 = sort { substr($a, 6) <=> substr($b, 6)} @array; > say for @array2; > ' Patch_1.0 Patch_2.0 Patch_3.1 Patch_4.2 Patch_5.0 Patch_6.0 Patch_7.0 Patch_8.0 Patch_9.3 Patch_10.2 Patch_11.0 Patch_11.2 Patch_11.4
In reply to Re^2: sorting an array with decimal points
by Laurent_R
in thread sorting an array with decimal points
by levW
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |