Hi, this is in regards to Re^10: file open in perl tk, where a file being read in, is not being properly displayed in a Tk::Text widget. I sure it is an encoding issue, but I can't quite see what to do.

Simply, I have a file, I create test1.txt

1 2 3 4 5 6 7 8 9 a b c d e f
it's hex view is (minus the f)
31 0A 32 0A | 33 0A 34 0A | 35 0A 36 0A | 37 0A 38 0A | 39 0A 61 0A | +62 0A 63 0A | 64 0A 65 0A 1 2 3 4 5 6 7 8 9 a b c d
Now when I run this thru the following program, the Tk Text widget inserts an unwanted space
#!/usr/bin/perl use warnings; use strict; use Tk; use Tk::FileSelect; use Encode; use utf8; my $mw = MainWindow->new; $mw->configure( -background => 'black', -foreground => 'white' ); $mw->geometry( "400x100" ); $mw->title( "Multiple Windows Test" ); my $button1 = $mw->Button( -text => "view Results", -background => "cyan", -command => \&button1_sub )->pack( -side => "right" ); $mw->Button( -text => "Exit", -command => sub { exit } ) ->pack( -side => "bottom" ); MainLoop; sub button1_sub { my $subwin1 = $mw->Toplevel; $subwin1->geometry( "500x400" ); $subwin1->title( "Sub Window #1" ); my $fh; open( $fh, '<', "./test1.txt" ) or die $!; my @contents = <$fh>; print "@contents\n"; close( $fh ); my $sublable = $subwin1->Scrolled( 'Text', -scrollbars => 'osoe', )- +>pack; $sublable->insert( 'end', "@contents" ); my $subwin_button = $subwin1->Button( -text => "Close window", -command => sub {$subwin1 => 'destroy'} )->pack( -side => "bottom" ); }
The Tk::Text output has an extra space inserted,
1 2 3 4 5 6 7 8 9 a b c d e f
Additionally, if I un-quote "@contents" in the insert
$sublable->insert( 'end', @contents );
I get this strange output
1 3 5 7 9 b d f
It is very cold in my camp, and my brain can't quite figure out what is happening? Thanks. :-)

Update, I see a similar answer was given in Re^2: File contents are not displaying in Perl tk, where

$sublable->insert( 'end', $_ ) for @contents ;
works well. But there still is some strange behavior there.

I'm not really a human, but I play one on earth.
Old Perl Programmer Haiku ................... flash japh

In reply to Tk::Text and odd unicode behavior by zentara

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.