http://www.perlmonks.org?node_id=1045603


in reply to Understanding the Schwartzian transform.

I was looking at a article ... wanted make sure I was interpreting (pun intended) the mechanism correctly:

:) Consider interpreting the article instead , or one of these (: not sure if this was punny :)

:D

Schwartzian Transform
How do I sort an array by (anything)?
Schwartzian Transform
Schwartzian Transform
Schwartzian Transform
site:perlmonks.org Schwartzian Transform
Guttman-Rosler Transforms
Renaming the Schwartzian Transform
Sorting dates with the Schwartzian Transform
dominus Schwartzian transform
Schwartzian transform
The Perl Hardware Store - Tools You Didn't Know You Needed
Sorting with the Schwartzian Transform (May 06)

Am I close to understanding it? Is the Schwartzian Transform *always* constructed in this manner?

Close, just need some Basic debugging checklist to cement your understanding

$ cd dominus-tmp $ cat schwartz #!/usr/bin/perl -- use strict; use warnings; use Data::Dump qw/ dd pp /; my @sorted_names ; opendir D, '.' or die $!; @sorted_names = map { [ $_, -M $_ ] } readdir D; dd \@sorted_names; opendir D, '.' or die $!; @sorted_names = sort { $b->[1] <=> $a->[1] } map { [ $_, -M $_ ] } readdir D; dd \@sorted_names; opendir D, '.' or die $!; @sorted_names = map { $_->[0] } sort { $b->[1] <=> $a->[1] } map { [ $_, -M $_ ] } readdir D; dd \@sorted_names; __END__ $ perl schwartz [ [".", 0.00197916666666667], ["..", 0.00247685185185185], ["schwartz", 0.000289351851851852], ] [ ["..", 0.00247685185185185], [".", 0.00197916666666667], ["schwartz", 0.000289351851851852], ] ["..", ".", "schwartz"]

The  [ $_, -M $_ ] } part is known as  [ $_, expensive_function( $_ ) ]