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

pq
 2009-01-29 14:06
#118493 #118493
User since
2003-08-04
12209 Artikel
Admin1
[Homepage]
user image
burnersk+2009-01-29 12:56:46--
Wenn ich croak weglasse steht die erste immer noch da!! Der Text der ersten Fehlermeldung (eigentlich $@) soll in das croak rein. Aber es ist in $@ nix drin.

natürlich ist da was drin. ich sag nur reproduzierbares skript. zeig uns ein skript, das $@ leer lässt.
ich zeig dir das gegenteil:
Code: (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
26
27
28
29
30
$ cat Foo.pm
use strict;
use warnings;
package Foo;
use Carp qw/ croak /;

sub foo {
eval {
Baz::bar();
};
my $e = $@;
print "\$\@ = '$e'\n";
$e =~ s/(.*) at .*\n/$1/;
croak $e;
}

package Baz;

sub bar {
die "blubb";
}

1;
$ perl -wle'
use Foo;
Foo::foo();'
$@ = 'blubb at Foo.pm line 19.
'

blubb at -e line 3

das reported zeile 3 im aufrufenden skript (hier -e)
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem

View full thread Encode::encode in eval abfangen