Schrift
[thread]6926[/thread]

Zeitbegrenzung für reguläre Ausdrücke (Seite 4)



<< |< 1 2 3 4 5 >| >> 41 Einträge, 5 Seiten
Crian
 2005-04-27 17:34
#54191 #54191
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Ja danke, mal wieder so ein echt hilfreicher Kommentar... :angry:
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Taulmarill
 2005-04-27 19:00
#54192 #54192
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
[quote=sri,27.04.2005, 15:03]Mit POE waer das einfacher... ;)[/quote]
wie gross ist denn ein POE timeslice? kann der einzelne perl-opcodes unterbrechen?
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
sri
 2005-04-27 22:49
#54193 #54193
User since
2004-01-29
828 Artikel
BenutzerIn
[Homepage] [default_avatar]
[quote=Crian,27.04.2005, 15:34]Ja danke, mal wieder so ein echt hilfreicher Kommentar... :angry:[/quote]
Dann ignorier mich halt... :rock:
sri
 2005-04-27 22:50
#54194 #54194
User since
2004-01-29
828 Artikel
BenutzerIn
[Homepage] [default_avatar]
[quote=Taulmarill,27.04.2005, 17:00][quote=sri,27.04.2005, 15:03]Mit POE waer das einfacher... ;)[/quote]
wie gross ist denn ein POE timeslice? kann der einzelne perl-opcodes unterbrechen?[/quote]
Hat doch mit timeslices nix zu tun, der eval block befindet sich doch innerhalb eines events, und POE unterbricht keine opcodes, das muss dein eigener lokaler sig handler machen.
Thorium
 2005-04-28 11:07
#54195 #54195
User since
2003-08-04
232 Artikel
BenutzerIn
[Homepage] [default_avatar]
Vielleicht kann man auch mit (?{ code }) was basteln? Leider wird das Feature als experimental gekennzeichnet und ist ev. in späteren Versionen nicht mehr dabei. Jedesmal, wenn der Paser an diesem Regex-Block durchkommt, wird der code darin ausgeführt - siehe perldoc perlre
Per|li|nist der; -en, -en <zu ↑...ist>: a) Anhänger, Vertreter der radikalen Perlinisten die Perl als die einzig wahre Sprache ansehen; b) Mitglied einer perlinistischen Community.
Crian
 2005-04-28 12:13
#54196 #54196
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Ja, das hat Taulmarill auf der ersten Seite auch schon vorgeschlagen, der Versuch mit (?{1}) brachte aber leider keinen Erfolg.\n\n

<!--EDIT|Crian|1114676225-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Taulmarill
 2005-04-28 12:25
#54197 #54197
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
[quote=sri,27.04.2005, 20:50]Hat doch mit timeslices nix zu tun, der eval block befindet sich doch innerhalb eines events, und POE unterbricht keine opcodes, das muss dein eigener lokaler sig handler machen.[/quote]
das ist aber doch genau das problem hier...
alarm unterbricht keine opcodes weswegen man mit alarm keinen laufenden regex beenden kann. die lösung mit fork unterbricht wohl den laufenden, geforkten prozess mit kill, verbraucht aber viel zeit zum kopieren der daten (das tatsächliche programm ist ungleich grösser als das beispiel). ich sehe nicht, wo POE da helfen könnte.
nur noch mal zur erinnerung: das problem sieht so aus, dass ein einzelner regex sehr viel zeit verbraucht (> 24h) und nach einem festgesetzten timeout beendet/abgebrochen/getötet werden soll.
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
Thorium
 2005-04-28 16:53
#54198 #54198
User since
2003-08-04
232 Artikel
BenutzerIn
[Homepage] [default_avatar]
[quote=Crian,28.04.2005, 10:13]Ja, das hat Taulmarill auf der ersten Seite auch schon vorgeschlagen, der Versuch mit (?{1}) brachte aber leider keinen Erfolg.[/quote]
Wie wärs mit sowas wie
Code (perl): (dl )
(?{die if ($time + 15 <= time) })
Per|li|nist der; -en, -en <zu ↑...ist>: a) Anhänger, Vertreter der radikalen Perlinisten die Perl als die einzig wahre Sprache ansehen; b) Mitglied einer perlinistischen Community.
Crian
 2005-04-28 17:59
#54199 #54199
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Du meinst, damit der eval sterben kann, egal ob da jetzt ein opcode ist oder nicht? Interessant...

sollte dann aber wohl die "alarm\n" sein...\n\n

<!--EDIT|Crian|1114696904-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Taulmarill
 2005-04-28 18:15
#54200 #54200
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
naja, die if-abfrage würde ja selbst mind. einen opcode erzeugen. wenn das mit (?{1}) nicht funktioniert hat, dürfte das auch nicht funktionieren. ausserdem wird die if-abfrage unverhältnissmässig mehr performance ziehen je nach dem, wie oft sie aufgerufen wird.
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
<< |< 1 2 3 4 5 >| >> 41 Einträge, 5 Seiten



View all threads created 2005-04-25 13:24.