Schrift
[thread]13034[/thread]

return() aus eval()-Block geht nicht

Leser: 2


<< >> 5 Einträge, 1 Seite
Superfrank
 2009-01-21 17:54
#118218 #118218
User since
2006-09-05
164 Artikel
BenutzerIn
[default_avatar]
Hallo,
ich noch mal mit eval...

Ist es evtl. nicht möglich aus einem eval()-Block mit return zum Hauptprogramm zurückzukehren?
Z.B.

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/usr/bin/perl

my $wert = meinefunktion();
print "$wert\n";

sub meinefunktion{

eval{
return('plitsch')
};

return('platsch');
}



liefert "platsch" zurück.

Viele Grüsse

Frank
Struppi
 2009-01-21 18:02
#118219 #118219
User since
2006-02-17
628 Artikel
BenutzerIn
[Homepage]
user image
Das macht irgendwie keinen Sinn, das return wirkt nur im eval Block, nicht auf das aussenherum. Was willst du den erreichen?
Superfrank
 2009-01-21 18:06
#118221 #118221
User since
2006-09-05
164 Artikel
BenutzerIn
[default_avatar]
Struppi+2009-01-21 17:02:57--
Das macht irgendwie keinen Sinn, das return wirkt nur im eval Block, nicht auf das aussenherum. Was willst du den erreichen?


aja, dann hab ich meinen Denkfehler! Mir war nicht klar, daß das return in dem eval-Block nur zur subfunktion zurückkehrt.

Danke und viele Grüsse

Frank
betterworld
 2009-01-22 05:06
#118228 #118228
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
Mit "next", "last" und "redo" kannst du in diesem Fall weiter springen:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
sub routine {
{
print "test1\n";
eval {
next;
};
print "test2\n";
}
print "test3\n";
}

routine();


Gibt allerdings ne Warnung mit "use warnings"... naja, sieht eh nicht huebsch aus.
murphy
 2009-01-23 00:26
#118266 #118266
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
Es geht auch ohne Warnung mit goto:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use strict;
use warnings;

sub routine {
    print "test1\n";

    eval {
        goto OUT;
    };

    print "test2\n";

OUT:
    print "test3\n";
}

routine();
When C++ is your hammer, every problem looks like your thumb.
<< >> 5 Einträge, 1 Seite



View all threads created 2009-01-21 17:54.