On 2020-05-27 07:27, Brad Gilbert wrote:
The point was that 「say」 will print undefined values without complaining.
Really debug statements should be more like:
$*STDERR.put: 「%CommandLine<backup_path> = 」, %CommandLine<backup_path>;
Or more succinctly:
dd %CommandLine<backup_path>;
Which does bring to the forefront, why a duplicate
copy and paste of the same say line, one on
top of the other, first delivered a value from
another variable and the second one gave the correct
value.
I have converted to this say free sort of stuff;
if %Options< Debug > {
print " ParentDir = <$ParentDir>\n";
print " NumBackups <$NumBackups> Rotates %Options< Rotates >\n";
print " Sorted List = [" ~ @Sorted_List ~ "]\n";
print " Ordered List = [" ~ @Ordered_List ~ "]\n";
print " Rotated List = [" ~ @Rotated_List ~ "]\n";
print " Reverse List = [" ~ @Reverse_Pruned_List ~ "]\n";
print " Reverse_Pruned List = [" ~ @Reverse_Pruned_List ~ "]\n";
print " Number of backup directories is $NumBackups\n\n";
}
I like dd if I am interested in the structure of a variable
but avoid it if only the value is of interest.
And I could never in a million years be able to
duplicate this issue for the developers