Stephen Reese wrote:
printf() (as seen three lines down) has a format string and a list of
values corresponding to the % escapes in that string.  Because you are
using a string literal you should use print() instead.

foreach my $i (sort { $quad{$b} <=> $quad{$a} } keys %quad) {
   if ($n++ >= $ntop) { last };
   printf ("%6s:%s\n", $quad{$i},$i);
}
$n=0;

printf "\nDestination Port Summary:\n";
foreach my $i ( sort { $port{$b} <=> $port{$a} } keys %port) {
   if ($n++ >= $ntop) { last };
   printf ("%6s: %s\n", $port{$i},$i);
}
$n=0;

printf "\nSource Address Summary:\n";
foreach my $i ( sort { $srca{$b} <=> $srca{$a} } keys %srca) {
   if ($n++ >= $ntop) { last };
   printf ("%6s: %s\n", $srca{$i},$i);
}

John, when I change those statements to print() from printf() I get a
'%6s:%s' that prefix each line. And the count is then formatted incorrectly.

You trimmed away the code I was commenting on:

printf "Connection Summary:\n";

Where the string literal "Connection Summary:\n" does not have any formatting escapes like %s or %d and therefore you should be using print() instead of printf().



John
--
Perl isn't a toolbox, but a small machine shop where you
can special-order certain sorts of tools at low cost and
in short order.                            -- Larry Wall

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to