Thread Reguläre Ausdrücke durch anderes ersetzten...
(59 answers)
Opened by
ppm1
at 2004-02-16 23:16
User since 2004-02-19
1750
Artikel
BenutzerIn
ahm, crains script is buggy.
ich weiss nicht genau warum, aber $_ kommt nicht bis zu den subroutinen durch.
hier is mein geändertes script:
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:
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...
|