Thread Encode::encode in eval abfangen (20 answers)
Opened by burnersk at 2009-01-29 12:03

Linuxer
 2009-01-29 17:50
#118514 #118514
User since
2006-01-27
3891 Artikel
HausmeisterIn

user image
Hi,

Modul:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package module;
use strict;
use warnings;
use Carp qw( croak carp );
use Encode;

sub new {
    my ( $class, @args ) = @_;
    my $self = {};
    bless $self, ref( $class ) || $class;
    return $self;
}

sub foo {
    my ( $self ) = @_;

    if ( !eval { encode( 'utf-no', 'text' ) } ) {
        croak(
            "Laenge der Meldung: " . length($@),
            "\nMeldung: " . $@
        );
    }
}

1;


Skript:
Code (perl): (dl )
1
2
3
4
5
6
7
8
#!/usr/bin/perl
use strict;
use warnings;
use module;

my $mod = module->new;

$mod->foo();


Ausgabe:
Code: (dl )
1
2
3
Laenge der Meldung: 47
Meldung: Unknown encoding 'utf-no' at module.pm line 17
at script.pl line 8


Wo ist $@ leer?

edit: getestet unter WinXP und Linux.
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!

View full thread Encode::encode in eval abfangen