Thread String überarbeiten (10 answers)
Opened by Gast at 2004-06-07 17:42

Taulmarill
 2004-06-07 19:10
#83114 #83114
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
noch einfacher und schneller ist substr mit angabe von negativen werten für length. das sieht dann so aus
Code: (dl )
$string = substr($string,4,-2);

und wo wir schon mal beim benchmarken sind...
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#! /usr/bin/perl

use strict;
use warnings;
use Benchmark;

timethese (1000000, {
'substr' => sub { my $string = '123456789B31S';
$string = substr($string,4,(length($string)-6)); },
'tauli' => sub { my $string = '123456789B31S';
$string = substr($string,4,-2); },
'regexp' => sub { my $string = '123456789B31S';
$string =~ s/^.{4}(.+).{2}$/$1/; }});

peters@ronin:~/test> perl perl.pl
Benchmark: timing 1000000 iterations of regexp, substr, tauli...
regexp: 40 wallclock secs (40.02 usr + 0.00 sys = 40.02 CPU) @ 24987.51/s (n=1000000)
substr: 7 wallclock secs ( 7.46 usr + 0.00 sys = 7.46 CPU) @ 134048.26/s (n=1000000)
tauli: 6 wallclock secs ( 5.19 usr + 0.00 sys = 5.19 CPU) @ 192678.23/s (n=1000000)
$_=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 String überarbeiten