少し前に、モジュールで使用するときに$ SIG {WINCH}の問題を$SIG{WINCH}
使用していた2つのモジュールをロードしたため、問題が発生しました。今、私はこのケースを再構築しようとしましたが、今回はサブルーチン内の1つのモジュールに入れました。$SIG{WINCH}
$SIG{WINCH}
use warnings;
use strict;
package My_Package;
use Exporter 'import';
our @EXPORT = qw(choose);
sub choose {
# ...
my $size_changed;
local $SIG{WINCH} = sub { $size_changed = 1; }; # edit: added "local"
while ( 1 ) {
my $c = getch();
if ( $size_changed ) {
write_screen();
$size_changed = 0;
next;
}
# ...
}
}
これで、機能しているように見えます。このようにローカライズした場合$SIG{WINCH}
、または再構築時に何かを忘れた場合、保存できますか?