2012-03-23 8 views
1
package My_Test; 
use warnings; 
use strict; 
use Curses; 

sub routine { 
    my $scr = newterm($ENV{TERM}, \*STDERR, \*STDIN); 
    set_term($scr); 
    noecho();  
    keypad(1); 

    printw "press a key: "; 
    refresh; 
    my $c = getch(); 
    printw "$c\n"; 
    refresh; 
    sleep 1; 

    endwin(); 
    delscreen($scr); 
} 

1; 

たら、より多くのそれを呼び出すとき、私はこれを実行すると、「newtermを」との問題は、スクリプト呪い:

#!/usr/bin/env perl 
use warnings; 
use strict; 
use My_Test; 

My_Test::routine(); 
My_Test::routine(); 

第二My_Test::routineは、このエラー・メッセージが表示されます。

Use of uninitialized value in subroutine entry at My_Test.pm line 8. 
argument 0 to Curses function 'set_term' is not a Curses screen at My_Test.pm line 8. 

なぜこれがありませんサブルーチンは初めての作業ですか?

答えて

1
package My_Test; 

use strict; 
use warnings; 
use Curses; 

our $scr = newterm($ENV{TERM}, \*STDERR, \*STDIN); 
set_term($scr); 

sub routine { 
    noecho();  
    keypad(1); 
    printw "press a key: "; 
    refresh; 
    my $c = getch(); 
    printw "$c\n"; 
    refresh; 
    sleep 1; 
    endwin(); 
} 

1; 
関連する問題