1 1ddd2d4e 2023-09-10 jrmu #!/usr/bin/perl
3 1ddd2d4e 2023-09-10 jrmu # Using a Schwartzian Transform, read a list of words and sort them in
4 1ddd2d4e 2023-09-10 jrmu # "dictionary order." Dictionary order ignores all capitalization and
5 1ddd2d4e 2023-09-10 jrmu # internal punctuation. Hint: The following transformation might be useful:
7 1ddd2d4e 2023-09-10 jrmu # my $string = 'Mary Ann';
8 1ddd2d4e 2023-09-10 jrmu # $string =~ tr/A-Z/a-z/;
9 1ddd2d4e 2023-09-10 jrmu # $string =~ tr/a-z//cd;
10 1ddd2d4e 2023-09-10 jrmu # print $string;
12 1ddd2d4e 2023-09-10 jrmu # Be sure you don't mangle the data! If the input includes 'the Professor'
13 1ddd2d4e 2023-09-10 jrmu # and 'The Skipper', the output should have them listed in that order, with
14 1ddd2d4e 2023-09-10 jrmu # that capitalization.
17 1ddd2d4e 2023-09-10 jrmu use warnings;
21 1ddd2d4e 2023-09-10 jrmu chomp(my @lines = <>);
23 1ddd2d4e 2023-09-10 jrmu my @sorted =
24 1ddd2d4e 2023-09-10 jrmu map { $_->[0] }
25 1ddd2d4e 2023-09-10 jrmu sort { $a->[1] cmp $b->[1] }
27 1ddd2d4e 2023-09-10 jrmu my $str = $_;
28 1ddd2d4e 2023-09-10 jrmu $str =~ tr/A-Z/a-z/;
29 1ddd2d4e 2023-09-10 jrmu $str =~ tr/a-z//cd;
32 1ddd2d4e 2023-09-10 jrmu print join "\n", @sorted;