Am I not using strict in all examples (even the admittedly horrible original post) above?

You are putting it in the code you post, but you obviously aren't using it when you run the code on your machine, else you would be seeing and correcting these errors and warnings--not me.

Trust me when I say that the versions of Perl and XP will not be causing the warnings I reported in the code from the post to which I replied.

When I correct the logic errors I detailed, then I get this output:

C:\test>632320 same values, different keys: A->b same values, different keys: A->h same values, different keys: A->s same values, different keys: A->t same values, different keys: A->d same values, different keys: A->f same values, different keys: A->h same values, different keys: A->w same values, different keys: A->c same values, different keys: A->d same values, different keys: A->f same values, different keys: A->p same values, different keys: A->c same values, different keys: A->g same values, different keys: A->o same values, different keys: A->v same values, different keys: A->o same values, different keys: A->g same values, different keys: A->j same values, different keys: A->n 1/177 .

And if I comment out the print line producing that "same values, ..." output I get

C:\test>632320 1/177 . 11/0

That's obviously only the final state when the program ends. I see the values changing as the program progresses. And that I think is the answer to your original question. Mixing consoleIO and prints means that the latter is overlaying the former and causing the screen to scroll.

You should opt for using one or the other. Or, clear the screen first, write your status information to the top line whilst saving and restoring the current cursor postion before and after each write, and then your print statements can scroll down the screen and the status information stays fixed.

Personally, I think that avoiding mixing them is the easiest option.


Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
"Too many [] have been sedated by an oppressive environment of political correctness and risk aversion."

In reply to Re^5: multi-threaded win32::console by BrowserUk
in thread multi-threaded win32::console by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.