Leser: 2
|< 1 2 >| | 11 Einträge, 2 Seiten |
$foo = ( split / /, $string )[2];
$foo = ( split / /, $string )[2];
1 2 3
# gesuchte Spalte $col_num = 3; $foo = ( split( //, $string, $col_num+1 ) )[$col_num-1];
Linuxer+2008-01-14 11:30:53--Code (perl): (dl )1 2 3# gesuchte Spalte $col_num = 3; $foo = ( split( //, $string, $col_num+1 ) )[$col_num-1];
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
#!/usr/bin/perl use strict; use warnings; use Benchmark qw(cmpthese); my @array = (1..10); my $test = 9; cmpthese( 10000000, { negativ => sub{ my $x = $array[-2] }, minus => sub{ my $x = $array[$test-1] }, } );
Linuxer+2008-01-14 11:30:53--Code: (dl )$foo = ( split / /, $string )[2];
Mir wäre es neu, dass split() hier nur bis zum dritten Wert splittet.
Soweit ich weiß, wird $string komplett gesplittet und eine Liste der Teile geliefert.
Aus dieser Liste wird dann durch ( )[2] das dritte Element ausgewählt.
perldoc -f splitWhen assigning to a list, if LIMIT is omitted, or zero, Perl supplies a LIMIT one larger than the number of variables in the list, to avoid unnecessary work.
1 2 3 4 5 6 7
#!/usr/bin/perl use strict; use warnings; my $string = "Dies ist ein Test"; my $foo = (split / /, $string)[2];
1
2
3
4
5
6
C:\>perl -MO=Deparse bench.pl
use warnings;
use strict 'refs';
my $string = 'Dies ist ein Test';
my $foo = (split(/ /, $string, 0))[2];
bench.pl syntax OK
Taulmarill+2008-01-14 11:49:04--perldoc -f splitWhen assigning to a list, if LIMIT is omitted, or zero, Perl supplies a LIMIT one larger than the number of variables in the list, to avoid unnecessary work.
my (undef, $foo) = split / /, $string;
Quoteaber dabei werden ja die anderen spalten auch eingelesen und zumindestens kurzfristik gespeichert, was ja bei meinem problem unnötig ist. gibt es eine möglichkeit nur die eine spalte einzulesen?
|< 1 2 >| | 11 Einträge, 2 Seiten |