не может прочитать содержимое файла в perl/tk TEXT

Я знаю, что это не новый вопрос. это работа.. почему?

#!/usr/local/bin/perl
use Tk;
use File::Tail;

#Main Window
my $mw = new MainWindow;
$mw-> title ("Packet Analyzer Tool");

my $frm_1 = $mw -> Frame() -> pack();
my $frm_2 = $mw -> Frame() -> pack();
my $frm_3 = $mw -> Frame() -> pack();
my $frm_4 = $frm_3 -> Frame(-relief => 'groove', -borderwidth =>2) -> pack(-side => "left");
my $frm_5 = $frm_3 -> Frame() -> pack(-side => "right",-after => $frm_4);

my $but1 = $frm_1 -> Button(-text => "Start", 
-command =>\&push_start)
-> pack(-side => "left", -anchor => 'nw', -ipadx => 30, -ipady => 35);

my $but2 = $frm_1 -> Button(-text => "Stop",
-command =>\&push_stop)
-> pack(-side => "left",-after =>$but1, -expand => 1,-ipadx => 30, -ipady => 35);

my $but3 = $frm_1 -> Button(-text => "Pause",
-command =>\&push_pause)
-> pack(-side => "left",-after => $but2 ,-ipadx => 30, -ipady => 35);

my $but4 = $frm_1 -> Button(-text => "Exit",
-command =>\&push_exit)
-> pack(-side => "left", -after => $but3 ,-ipadx => 30, -ipady => 35);

my $filter = $frm_2 ->Entry(-width => 65) -> pack(-side =>"left",-anchor => 's');
my $but5 = $frm_2 -> Button(-text => "Search", -command =>\&push_search)
->pack(-side => "left", -after => $filter, -ipadx => 10);

my $txt1 = $frm_4 -> Text(-width => 60, -height =>20) 
-> pack(-side =>"left",-anchor => 's');
my $srl = $frm_4 -> Scrollbar(-orient=>'v', -command =>[yview => $txt]);
$txt1 -> configure(-yscrollcommand =>['set',$srl]);


$txt1 -> grid(-row=>1, -column=>1);
$srl -> grid(-row=>1, -column=>2,-sticky=>"ns");

my $txt2 = $frm_5 -> Text(-width => 15, -height =>20)
-> pack(-side=>"right", -anchor => 'e');

MainLoop;

#Executed START BUTTON
sub push_start
{
open my $fh,'<','/home/terrance/Desktop/perl/record.txt' || die $!;
my @contents = <$fh>;
foreach my $line (@contents)
{
$txt1 ->insert("end", $line);   
}


#$txt1 -> insert ('end', "hello due\n");
}

person T_y    schedule 05.04.2011    source источник
comment
Пожалуйста, сделайте отступ в коде.   -  person    schedule 05.04.2011


Ответы (1)


Используйте perltidy в своем коде и добавьте

use strict;
use warnings;

Тогда ты поймаешь

  1. опечатка $txt => $txt1 в my $srl = $frm_4->Scrollbar( -orient => 'v', -command => [ yview => $txt ] );

  2. пропавший my @contents = <$fh>;

  3. опечатка foreach my $line (@contetns)

Если подумать: вы уверены, что файл существует и доступен?

person Ekkehard.Horner    schedule 05.04.2011