bc-bd.org

Not a blog

Perl, Curses and Mouse

While working with Curses and Mouse I found, that my Mouse error message will not be displayed. I worked around it by capturing the message via eval, calling endwin; directly and displaying the error after that.

#!/usr/bin/perl

package Foo;
use Mouse;

use Curses::UI;

has _cui => (
    isa => 'Curses::UI',
    is => 'ro',
    default => sub { return new Curses::UI ( -clear_on_exit => 0 ) },
);

has _screen => (
    # _screen should be a 'Curses::UI::Window'
    isa => 'Curses::UI',
    is => 'ro',
    default => sub { return shift->_cui->add( 'screen', 'Window' ) },
);

package main;

use Curses;

eval { my $f = Foo->new(); };

if ($@) {
    endwin;
    print $@;
}