Hi rakoons,
On Sun, Mar 03, 2024 at 01:22:45PM +0100, Elizabeth Mattijsen wrote:
> Actually, the expression can be refined a bit:
>
> say <afoo12 afoo2>.sort(*.split(/\d+/, :v).map({ (try .Int) // $_}).List)
Which is gorgeous! thanks for that. I read the documentation which is
clear about all the magic in action there. So I played a little with it
and came with this sort
.say for <
afoo12 afoo2 abar12
abar9foo
abar64foo
abar64bang
abar64bang4foo
abar64bang4bar
abar64bang5bar
abar64foo
abar64foo4foo
abar64foo4bar
abar64foo14bar
abar64foo5bar
afoo13 afoo4
>.sort: { | map { +$_ // $_ }, .split: /\d+/, :v }
The ouput seems to be ok.
regards,
--
Marc Chantreux
Pôle CESAR (Calcul et services avancés à la recherche)
Université de Strasbourg
14 rue René Descartes,
BP 80010, 67084 STRASBOURG CEDEX
03.68.85.60.79