Thread best. Feld speichern (wie z.B. bei awk) (27 answers)
Opened by Duff at 2008-03-19 11:53

KurtZ
 2008-03-19 17:27
#107270 #107270
User since
2007-12-13
411 Artikel
BenutzerIn
[default_avatar]
KurtZ+2008-03-19 15:47:16--
Außerdem optimiert das der Compiler wirklich dahingehend dass nicht mehr die ganze Zeile gesplittet wird sondern nach idx abgebrochen wird?


OK ich glaubs :-)


Code (perl): (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
use strict;
$\="\n";
$,="\t";

my $str=join ",",('a'..'z')x10000;
my $idx=26;

#print $str;

my $codes={
        'namedArr' =>
                sub {
                        my @F=split /,/ , $str ;
                        return $F[$idx];
                },
    'anoArr' =>
                sub {
                        return +(split /,/, $str) [$idx];
                },
        'anoArrRef' =>
                sub {
                        return [ split /,/, $str ] -> [$idx];
                },
};


#- Test Codes
while ( my ($name, $cr) = each %$codes ) {
        print $name.":", $cr->();
}


#- Benchmark
use Benchmark qw(cmpthese);
cmpthese( 10, $codes);


Code: (dl )
1
2
3
4
              Rate  namedArr anoArrRef    anoArr
namedArr 0.762/s -- -25% -53%
anoArrRef 1.02/s 34% -- -36%
anoArr 1.61/s 111% 57% --



aber wo ist +() dokumentiert???
TMTOWTDYOG (there's more than one way to dig your own grave)

View full thread best. Feld speichern (wie z.B. bei awk)