Schrift
[thread]8649[/thread]

splice bei Referenzen...?

Leser: 2


<< >> 5 Einträge, 1 Seite
GoodFella
 2007-01-16 16:45
#73254 #73254
User since
2007-01-09
192 Artikel
BenutzerIn
[default_avatar]
Kennt jemand eine effiziente Möglichkeit, Spalten aus einem referenzierten 2d-Array zu entfernen? Also $data->[$y][$x] ==> alle die $x = 2 enthalten zB. Sicher ich könnte ein neues Array erstellen und die entsprechenden Spalten weglassen; aber es handelt sich hier um Arrays der Grössenordnung 5000x40 .. sollte schon schnell sein. Wäre es ein einfaches Array und keine Referenz darauf, würde ich splice verwenden.
pq
 2007-01-16 17:00
#73255 #73255
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
splice @$_, 1, 1 for @$data;
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
renee
 2007-01-16 17:01
#73256 #73256
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Du musst nur dereferenzieren...

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/perl

use strict;
use warnings;
use Data::Dumper;

my @array = ([1,2,3],[4,5,6]);
print Dumper(\@array);

for my $elem(@array){
$elem = [splice(@$elem,1,1)];
}

print Dumper(\@array);


siehe auch perlreftut\n\n

<!--EDIT|renee|1168959755-->
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
GoodFella
 2007-01-16 17:46
#73257 #73257
User since
2007-01-09
192 Artikel
BenutzerIn
[default_avatar]
[quote=pq,16.01.2007, 16:00]splice @$_, 1, 1 for @$data;[/quote]
Danke, war genau das, was ich gesucht habe.
Dubu
 2007-01-21 01:00
#73258 #73258
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
[quote=GoodFella,16.01.2007, 15:45]aber es handelt sich hier um Arrays der Grössenordnung 5000x40 .. sollte schon schnell sein.[/quote]
Ich weiß ja nicht, was für Arrays das sind, aber für effiziente Verarbeitung von (numerischen) Arrays unter Perl lohnt sich ein Blick auf PDL (Perl Data Language).

Ich selber hatte leider, leider bisher noch keine Anwendung für PDL. :)
<< >> 5 Einträge, 1 Seite



View all threads created 2007-01-16 16:45.