Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]11914[/thread]

Verständnisfrage END Block



<< >> 7 Einträge, 1 Seite
Gast Gast
 2008-05-25 19:50
#110288 #110288
Hallo,

ich hab da gerade ein Verständnisproblem mit dem END Block.
Wenn ich innerhalb des Blocks per require ein Script aufrufe und innerhalb dieses Scripts eine Fehlerbehandlungsroutine ein 'exit' auslöst, wird dann der END Block aus dem heraus das Script aufgerufen wurde, nochmals komplett gestartet oder läuft der Code des Blocks dann nach der 'require' Zeile einfach weiter?
renee
 2008-05-26 00:47
#110303 #110303
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
exit bedeutet exit...

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
C:\>more eintest.pl
#!/usr/bin/perl

use strict;
use warnings;

END{
print "test\n";
eval { require "nochntest.pl" };

print "nach require\n";
}

C:\>more nochntest.pl
#!/usr/bin/perl

use strict;
use warnings;

print "nochntest.pl\n";
exit;

C:\>eintest.pl
test
nochntest.pl

C:\>


Wie Du siehst, wird noch nicht einmal das "nach require" ausgegeben...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Struppi
 2008-05-26 09:20
#110307 #110307
User since
2006-02-17
628 Artikel
BenutzerIn
[Homepage]
user image
Warum das eval um require?
renee
 2008-05-26 10:53
#110310 #110310
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Weil das noch aus Versehen drin ist... Hatte das mit "Fehlerbehandlung" gelesen und dann vergessen, das "eval" wieder rauszunehmen.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Taulmarill
 2008-05-26 13:48
#110315 #110315
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
Wenn die Verarbeitung des Scripts gestoppt werden soll ohne gleich den ganzen Interpreter zu beenden, kann man anstatt exit auch return verwenden.
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
renee
 2008-05-26 13:56
#110316 #110316
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Gibt einen (Laufzeit-)Fehler:
Code: (dl )
Can't return outside a subroutine at ....
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Gast Gast
 2008-05-26 20:59
#110324 #110324
Hab jetzt 2 END Blöcke drin - damit sollte dann wohl weiter gearbeitet werden können?
<< >> 7 Einträge, 1 Seite



View all threads created 2008-05-25 19:50.