我有以下代碼,我在其中制作了一個表單,我想在其中輸入多個時間步長、緯度和經度條目,如下所示:
my $mw = MainWindow->new;
my $exec_frame2 = $mw->Frame()->pack(-side => "top");
my $title_frame_track = $exec_frame2->Frame()->pack(-side=>"top");
$title_frame_track->Label(-text => '')->pack(-side => "top");
$title_frame_track->Label(-text => 'Storm Coordinates/Track')->pack(-side => "top");
my $frame1 = $exec_frame2->Frame()->pack(-side=>"top");
$frame1->Label(-text => 'Time Step:')->pack(-side=>"left");
my $timestep1 = $frame1->Entry(-width => 15)->pack(-side =>"left");
$frame1->Label(-text => 'Lat:')->pack(-side=>"left");
my $lat1 = $frame1->Entry(-width => 5)->pack(-side =>"left");
$frame1->Label(-text => 'Lon:')->pack(-side=>"left");
my $lon1 = $frame1->Entry(-width => 5)->pack(-side =>"left");
$frame1->Label(-text => 'Max Wind:')->pack(-side=>"left");
my $maxwind1 = $frame1->Entry(-width => 5)->pack(-side=>"left");
my $frame2 = $exec_frame2->Frame()->pack(-side=>"top");
$frame2->Label(-text => 'Time Step:')->pack(-side=>"left");
my $timestep2 = $frame2->Entry(-width => 15)->pack(-side =>"left");
$frame2->Label(-text => 'Lat:')->pack(-side=>"left");
my $lat2 = $frame2->Entry(-width => 5)->pack(-side =>"left");
$frame2->Label(-text => 'Lon:')->pack(-side=>"left");
my $lon2 = $frame2->Entry(-width => 5)->pack(-side =>"left");
$frame2->Label(-text => 'Max Wind:')->pack(-side=>"left");
my $maxwind2 = $frame2->Entry(-width => 5)->pack(-side=>"left");
my $frame3 = $exec_frame2->Frame()->pack(-side=>"top");
$frame3->Label(-text => 'Time Step:')->pack(-side=>"left");
my $timestep3 = $frame3->Entry(-width => 15)->pack(-side =>"left");
$frame3->Label(-text => 'Lat:')->pack(-side=>"left");
my $lat3 = $frame3->Entry(-width => 5)->pack(-side =>"left");
$frame3->Label(-text => 'Lon:')->pack(-side=>"left");
my $lon3 = $frame3->Entry(-width => 5)->pack(-side =>"left");
$frame3->Label(-text => 'Max Wind:')->pack(-side=>"left");
my $maxwind3 = $frame3->Entry(-width => 5)->pack(-side=>"left");
MainLoop ;
此代碼應該創建這樣的影像:

有沒有辦法將變數 frame、timestep、lat、lon 和 maxwind 放入陣列中,以便我可以將上面的代碼放入回圈中?我試圖將第一組代碼壓縮到下面的回圈中,但出現錯誤。
for (i=0,i<10;i )
{
$frame[$i] = $exec_frame2->Frame()->pack(-side=>"top");
$frame[$i]->Label(-text => 'Time Step:')->pack(-side=>"left")
$timestep[$i] = $frame[$i]->Entry(-width => 15)->pack(-side =>"left");
$frame[$i]->Label(-text => 'Lat:')->pack(-side=>"left");
my $lat[$i] = $frame[$i]->Entry(-width => 5)->pack(-side =>"left");
$frame[$i]->Label(-text => 'Lon:')->pack(-side=>"left");
my $lon[$i] = $frame[$i]->Entry(-width => 5)->pack(-side =>"left");
$frame[$i]->Label(-text => 'Max Wind:')->pack(-side=>"left");
my $maxwind[$i] = $frame[$i]->Entry(-width => 5)->pack(-side=>"left");
}
無論如何調整此代碼以獲得所需的結果并保持代碼更簡潔?
uj5u.com熱心網友回復:
Perl 中的標量變數必須以美元符號開頭。宣告一個變數也是一個好習慣:
for (my $i = 0; $i < 10; $i) {
$timestep[$i]賦值后還缺少一個分號。此外,我不應該用于陣列元素,例如
my $lat[$i] = ... # Wrong!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/462032.html
上一篇:回圈并檢查是否為整數
