in reply to Debug a sort block

${$partition_h{a}}{full_tabname}

Do you really mean  ${$partition_h{a}}{full_tabname} and not  ${$partition_h{$a}}{full_tabname} (a vice $a)?

Update: It is possible (though usually very tedious) to put debug statements into a sort block as long as the comparison is the last expression evaluated:

c:\@Work\Perl\monks>perl -wMstrict -e "use Data::Dump qw(dd); ;; my @sorted = sort { dd $a, $b; $a cmp $b; } (qw(d a c e b), undef); dd \@sorted; " ("d", "a") ("c", "e") ("b", undef) Use of uninitialized value in string comparison (cmp) at -e line 1. ("a", "c") ("c", "d") ("d", "e") ("a", undef) Use of uninitialized value in string comparison (cmp) at -e line 1. ("a", "b") ("c", "b") [undef, "a", "b", "c", "d", "e"]
(Update: Changed example code to use Data::Dump::dd() instead of print and to include an undef element in the list to be sorted.)


Give a man a fish:  <%-{-{-{-<

Replies are listed 'Best First'.
Re^2: Debug a sort block
by LanX (Saint) on Jan 31, 2020 at 21:41 UTC
    > Update: It is possible (though usually very tedious) to put debug statements into a sort block

    In this case I'd rather replace the sort block with a function, it's match easier to set breakpoints and watch expressions then.

    DB<1> sub by_num { return $a <=> $b } DB<2> x [sort by_num 1,11,2,12] 0 ARRAY(0x334b888) 0 1 1 2 2 11 3 12 DB<3>

    update

    added return to make mechanism obvious.

    Cheers Rolf
    (addicted to the Perl Programming Language :)
    Wikisyntax for the Monastery FootballPerl is like chess, only without the dice