Hi monks,I have written a small "perl tk" script to open a file , append the data into the file . The problem comes here is whenever i appended new data into the file those changes are not saving , moreover it is not showing the entire file contents.The behaviour of open a file is abnormal.
File changes are not reflecting into the original file
#!/usr/bin/perl
use warnings;
use strict;
use Tk;
use Tk::FileSelect;
my $mw = MainWindow->new;
$mw->configure( -background => 'black', -foreground => 'white' );
$mw->geometry( "400x300" );
$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" );
sub button1_sub {
my $subwin1 = $mw->Toplevel;
$subwin1->geometry( "500x400" );
$subwin1->title( "Sub Window #1" );
my $fh;
open( $fh, '+<', "./test.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" );
#=================Creating save buttion on subwindow ===========
my $save_button = $subwin1->Button(-text=>'save',
-background =>'cyan',
-command => sub{
my $dst = $mw->getSaveFile(
-initialdir => $ENV{HOME},
-defaultextension => '.in',
-title => 'Save',
-filetypes => [
[ 'myfiles' => '.in' ],
[ 'All files' => '*' ],
],
);
$dst ||= "$0.edit"; #in case user hits cancel
warn "dst=$dst";
open (my $fh, '>',$dst) or die "$!\n";
print $fh $sublable->get("1.0","end");
} )->pack(-side=>'right');
}
MainLoop;