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


in reply to Re: Schwartzian Transform and memory allocation.
in thread Schwartzian Transform and memory allocation.

Why split once for the Schwartzian Transform then again for the output?
open FILE, "<$data_file"; my @file_data = sort { $a->[$variable-1] cmp $b->[$variable-1] }, map [ split(/\|/) ], <FILE>; close FILE; print qq(<TABLE BORDER="1">); for my $row (@file_data){ print ( qq(<TR>), map(qq(<TD>$_</TD>), @$row), qq(</TR>) ); } print qq(</TABLE>);
____________
Makeshifts last the longest.

Replies are listed 'Best First'.
Re^3: Schwartzian Transform and memory allocation.
by flounder99 (Friar) on Jun 20, 2002 at 13:41 UTC
    I think the

    sort { $a->[$variable-1] cmp $b->[$variable-1] },

    line should be

    sort { $a->[$variable] cmp $b->[$variable] },

    The -1 was added by abigail to skip over the $_ that was tacked on at the beginning of the anon array. You're no longer doing that.

    --

    flounder

      No, actually, Abigail added the -1 because there was no longer an extra element to skip over. It doesn't make sense to subtract 1 to skip over an extra element, does it? The same premise holds true in my snippet as well.

      Makeshifts last the longest.