finding my ways through the vast fields of perl using "intermediate perl" by o'reilly as a guide ... currently, in the middle of not-loosing-my-head while trying to understand the schwartzian transform ... one thing acutally strikes me: the following code is working sweet as:
my @words = qw (Oli Sonni sonja oliver speedy 112); my @output = map $_->[0], sort {$a->[1] cmp $b->[1]} map { my $string = $_; $string =~ tr/A-Z/a-z/; $string =~ tr/a-z//cd; [$_, $string]} @words; for my $word (@output){say $word;}
The output, as expected is a "dictionary"-sorted list (acutllay, that's the solution proposed in the actual book itself): 123 ... Oli ... speedy However, I did come up with quite a similar solution. The only difference is that I stuffed the regexes into a subroutine:
my @words = qw (Oli Sonni sonja oliver speedy 112); my @output = map $_->[0], sort {$a->[1] cmp $b->[1]} map [$_, transform($_)], @words; sub transform{ my $string = shift; $string =~ tr/A-Z/a-z/;#kleinschreibung $string =~ tr/a-z//cd; } for my $word (@output){say $word;}
As a result, I am getting the original sorting of the list. Some enlighted monk being able to see what I do not see ...?
Thanks in advance, OliIn reply to Schwartzian Transfrom using a subroutine by oliverhuber
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |