Thread Reguläre Ausdrücke durch anderes ersetzten... (59 answers)
Opened by ppm1 at 2004-02-16 23:16

Taulmarill
 2004-02-26 16:00
#80154 #80154
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
ahm, crains script is buggy.
ich weiss nicht genau warum, aber $_ kommt nicht bis zu den subroutinen durch.

hier is mein geändertes script:
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
31
32
33
34
35
36
37
38
39
40
41
42
#!/usr/bin/perl

use strict;
use Benchmark;

my @text = ('+5000*',
'ein langer Text ohne solche Rechenoperationen...bla fasel laber schwaller sabbel erzähl ...',
'8947573849575563542325375869676545343423232425347585764554534232432452673740-',
'8947573849575563542325375869676545343423232425347585764554534232432452673740+',
'8947573849575563542325375869676545343423232425347585764554534232432452673740*',
'8947573849575563542325375869676545343423232425347585764554534232432452673740/',
'89475738495755635423253758696765453434232324253475857645545342324324526737401',
'-9475738495755635423253758696765453434232324253475857645545342324324526737401',
'+9475738495755635423253758696765453434232324253475857645545342324324526737401',
'*9475738495755635423253758696765453434232324253475857645545342324324526737401',
'/9475738495755635423253758696765453434232324253475857645545342324324526737401',
);

for my $line (@text) {
print "timethesis für '$line'\n";

timethese(100000, {
A => sub {
if ( $line =~ m~(?:-|\+|\*|/)~) {}
},
B => sub {
if ( $line =~ m~-~ or m~\+~ or m~\*~ or m~/~) {}
},
C => sub {
if ( $line =~ m~[-+*/]~) {}
},
D => sub {
if ( $line =~ m~[-]~ or m~[+]~ or m~[*]~ or m~[/]~) {}
},
E => sub {
if (index($line, '-') > -1 or
index($line, '+') > -1 or
index($line, '*') > -1 or
index($line, '/') > -1) {}
},
});
}


und hier die ergebisse:
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
root@ronin:~# perl test.pl
timethesis für '+5000*'
Benchmark: timing 100000 iterations of A, B, C, D, E...
A: 1 wallclock secs ( 0.49 usr + 0.00 sys = 0.49 CPU) @ 204081.63/s (n=100000)
B: 0 wallclock secs ( 0.56 usr + 0.00 sys = 0.56 CPU) @ 178571.43/s (n=100000)
C: 1 wallclock secs ( 0.39 usr + 0.00 sys = 0.39 CPU) @ 256410.26/s (n=100000)
(warning: too few iterations for a reliable count)
D: 0 wallclock secs ( 0.60 usr + 0.00 sys = 0.60 CPU) @ 166666.67/s (n=100000)
E: 0 wallclock secs ( 0.38 usr + 0.00 sys = 0.38 CPU) @ 263157.89/s (n=100000)
(warning: too few iterations for a reliable count)
timethesis für 'ein langer Text ohne solche Rechenoperationen...bla fasel laber schwaller sabbel erzähl ...'
Benchmark: timing 100000 iterations of A, B, C, D, E...
A: 15 wallclock secs (14.18 usr + 0.00 sys = 14.18 CPU) @ 7052.19/s (n=100000)
B: 0 wallclock secs ( 0.64 usr + 0.00 sys = 0.64 CPU) @ 156250.00/s (n=100000)
C: 2 wallclock secs ( 0.66 usr + 0.00 sys = 0.66 CPU) @ 151515.15/s (n=100000)
D: 2 wallclock secs ( 0.99 usr + 0.00 sys = 0.99 CPU) @ 101010.10/s (n=100000)
E: 2 wallclock secs ( 0.94 usr + 0.00 sys = 0.94 CPU) @ 106382.98/s (n=100000)
timethesis für '8947573849575563542325375869676545343423232425347585764554534232432452673740-'
Benchmark: timing 100000 iterations of A, B, C, D, E...
A: 11 wallclock secs (11.97 usr + 0.00 sys = 11.97 CPU) @ 8354.22/s (n=100000)
B: 0 wallclock secs ( 0.43 usr + 0.00 sys = 0.43 CPU) @ 232558.14/s (n=100000)
C: 2 wallclock secs ( 0.76 usr + 0.00 sys = 0.76 CPU) @ 131578.95/s (n=100000)
D: 1 wallclock secs ( 0.81 usr + 0.00 sys = 0.81 CPU) @ 123456.79/s (n=100000)
E: 0 wallclock secs ( 0.36 usr + 0.00 sys = 0.36 CPU) @ 277777.78/s (n=100000)
(warning: too few iterations for a reliable count)
timethesis für '8947573849575563542325375869676545343423232425347585764554534232432452673740+'
Benchmark: timing 100000 iterations of A, B, C, D, E...
A: 11 wallclock secs (11.96 usr + 0.00 sys = 11.96 CPU) @ 8361.20/s (n=100000)
B: 0 wallclock secs ( 0.62 usr + 0.00 sys = 0.62 CPU) @ 161290.32/s (n=100000)
C: 0 wallclock secs ( 0.75 usr + 0.00 sys = 0.75 CPU) @ 133333.33/s (n=100000)
D: 0 wallclock secs ( 0.95 usr + 0.00 sys = 0.95 CPU) @ 105263.16/s (n=100000)
E: 0 wallclock secs ( 0.52 usr + 0.00 sys = 0.52 CPU) @ 192307.69/s (n=100000)
timethesis für '8947573849575563542325375869676545343423232425347585764554534232432452673740*'
Benchmark: timing 100000 iterations of A, B, C, D, E...
A: 13 wallclock secs (11.99 usr + 0.00 sys = 11.99 CPU) @ 8340.28/s (n=100000)
B: 2 wallclock secs ( 0.64 usr + 0.00 sys = 0.64 CPU) @ 156250.00/s (n=100000)
C: 2 wallclock secs ( 0.75 usr + 0.00 sys = 0.75 CPU) @ 133333.33/s (n=100000)
D: 2 wallclock secs ( 0.95 usr + 0.00 sys = 0.95 CPU) @ 105263.16/s (n=100000)
E: 2 wallclock secs ( 0.70 usr + 0.00 sys = 0.70 CPU) @ 142857.14/s (n=100000)
timethesis für '8947573849575563542325375869676545343423232425347585764554534232432452673740/'
Benchmark: timing 100000 iterations of A, B, C, D, E...
A: 13 wallclock secs (12.00 usr + 0.00 sys = 12.00 CPU) @ 8333.33/s (n=100000)
B: 2 wallclock secs ( 0.64 usr + 0.00 sys = 0.64 CPU) @ 156250.00/s (n=100000)
C: 1 wallclock secs ( 0.75 usr + 0.00 sys = 0.75 CPU) @ 133333.33/s (n=100000)
D: 2 wallclock secs ( 0.95 usr + 0.00 sys = 0.95 CPU) @ 105263.16/s (n=100000)
E: 2 wallclock secs ( 1.00 usr + 0.00 sys = 1.00 CPU) @ 100000.00/s (n=100000)
timethesis für '89475738495755635423253758696765453434232324253475857645545342324324526737401'
Benchmark: timing 100000 iterations of A, B, C, D, E...
A: 13 wallclock secs (12.01 usr + 0.00 sys = 12.01 CPU) @ 8326.39/s (n=100000)
B: 0 wallclock secs ( 0.62 usr + 0.00 sys = 0.62 CPU) @ 161290.32/s (n=100000)
C: 1 wallclock secs ( 0.60 usr + 0.00 sys = 0.60 CPU) @ 166666.67/s (n=100000)
D: 2 wallclock secs ( 0.95 usr + 0.00 sys = 0.95 CPU) @ 105263.16/s (n=100000)
E: 2 wallclock secs ( 0.91 usr + 0.00 sys = 0.91 CPU) @ 109890.11/s (n=100000)
timethesis für '-9475738495755635423253758696765453434232324253475857645545342324324526737401'
Benchmark: timing 100000 iterations of A, B, C, D, E...
A: 1 wallclock secs ( 0.41 usr + 0.00 sys = 0.41 CPU) @ 243902.44/s (n=100000)
B: 0 wallclock secs ( 0.34 usr + 0.00 sys = 0.34 CPU) @ 294117.65/s (n=100000)
(warning: too few iterations for a reliable count)
C: 1 wallclock secs ( 0.39 usr + 0.00 sys = 0.39 CPU) @ 256410.26/s (n=100000)
(warning: too few iterations for a reliable count)
D: 0 wallclock secs ( 0.44 usr + 0.00 sys = 0.44 CPU) @ 227272.73/s (n=100000)
E: 1 wallclock secs ( 0.26 usr + 0.00 sys = 0.26 CPU) @ 384615.38/s (n=100000)
(warning: too few iterations for a reliable count)
timethesis für '+9475738495755635423253758696765453434232324253475857645545342324324526737401'
Benchmark: timing 100000 iterations of A, B, C, D, E...
A: 0 wallclock secs ( 0.50 usr + 0.00 sys = 0.50 CPU) @ 200000.00/s (n=100000)
B: 1 wallclock secs ( 0.64 usr + 0.00 sys = 0.64 CPU) @ 156250.00/s (n=100000)
C: 0 wallclock secs ( 0.38 usr + 0.00 sys = 0.38 CPU) @ 263157.89/s (n=100000)
(warning: too few iterations for a reliable count)
D: 0 wallclock secs ( 0.96 usr + 0.00 sys = 0.96 CPU) @ 104166.67/s (n=100000)
E: 0 wallclock secs ( 0.46 usr + 0.00 sys = 0.46 CPU) @ 217391.30/s (n=100000)
timethesis für '*9475738495755635423253758696765453434232324253475857645545342324324526737401'
Benchmark: timing 100000 iterations of A, B, C, D, E...
A: 1 wallclock secs ( 0.49 usr + 0.00 sys = 0.49 CPU) @ 204081.63/s (n=100000)
B: 0 wallclock secs ( 0.62 usr + 0.00 sys = 0.62 CPU) @ 161290.32/s (n=100000)
C: 0 wallclock secs ( 0.38 usr + 0.00 sys = 0.38 CPU) @ 263157.89/s (n=100000)
(warning: too few iterations for a reliable count)
D: 2 wallclock secs ( 0.96 usr + 0.00 sys = 0.96 CPU) @ 104166.67/s (n=100000)
E: 1 wallclock secs ( 0.66 usr + 0.00 sys = 0.66 CPU) @ 151515.15/s (n=100000)
timethesis für '/9475738495755635423253758696765453434232324253475857645545342324324526737401'
Benchmark: timing 100000 iterations of A, B, C, D, E...
A: 0 wallclock secs ( 0.53 usr + 0.00 sys = 0.53 CPU) @ 188679.25/s (n=100000)
B: 0 wallclock secs ( 0.63 usr + 0.00 sys = 0.63 CPU) @ 158730.16/s (n=100000)
C: 1 wallclock secs ( 0.39 usr + 0.00 sys = 0.39 CPU) @ 256410.26/s (n=100000)
(warning: too few iterations for a reliable count)
D: 0 wallclock secs ( 0.94 usr + 0.00 sys = 0.94 CPU) @ 106382.98/s (n=100000)
E: 0 wallclock secs ( 0.84 usr + 0.00 sys = 0.84 CPU) @ 119047.62/s (n=100000)
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B

View full thread Reguläre Ausdrücke durch anderes ersetzten...