Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]11033[/thread]

Wert in ARRAY restliche um 1 verschieben



<< >> 5 Einträge, 1 Seite
mr-sansibar
 2007-12-15 13:22
#103938 #103938
User since
2006-04-13
90 Artikel
BenutzerIn
[default_avatar]
Hallo!
Gibt es ein Möglichkeit in ein Array auf Index 3 was rein zu schreiben, und die restlichen Werte in index 3,4,5,6,7 um eins verschieben.:

beispiels:

0|1|2|3|4|5|6|7|8
'a'|'s'|'d'|'f'|'g'|'h'|'j'|'k'

in index 3 den wert 'X' einfügen und restlichen ein verschieben so:

0|1|2|3|4|5|6|7|8|9|
'a'|'s'|'d'|'X'|'f'|'g'|'h'|'j'|'k'

vielen dank
#Kein Kommentar
 2007-12-15 13:29
#103939 #103939
User since
2007-06-09
575 Artikel
HausmeisterIn
[default_avatar]
splice vielleicht?
Gerade weil wir alle in einem Boot sitzen, sollten wir froh sein, dass nicht alle auf unserer Seite sind
Gast Gast
 2007-12-29 14:42
#104245 #104245
Hi!

du könntest den rest des arrays (@main) also ab index X in einen temporären array (@temp) kopieren, den rest des arrays @main löschen, deinen neuen wert @main hinzufügen (push), und dann @temp wieder zu @main hinzufügen!

diesen vorgang schreibst du schön in ne sub der du @main und $newvalue (X) übergibst!

nur so ne idee Oo
renee
 2007-12-29 14:47
#104247 #104247
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Das ist von Performance und Speicherverbrauch her eher schlecht und dass es besser lesbar ist wage ich auch zu bezweifeln. Der Tipp von #Kein Kommentar war da schon richtig...

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

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

my @array = ('a','s','d','f','g','h','j','k');
my $i     = 3;
my $value = 'X';

print Dumper(\@array), "\n";
splice @array, $i, 0, $value;
print Dumper(\@array), "\n";


Ausgabe:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
C:\splice.pl
$VAR1 = [
'a',
's',
'd',
'f',
'g',
'h',
'j',
'k'
];

$VAR1 = [
'a',
's',
'd',
'X',
'f',
'g',
'h',
'j',
'k'
];


Wie man sieht kann man mit einer einzigen Zeile (und gut lesbar) das Gewünschte erreichen.
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/
mr-sansibar
 2008-01-03 22:08
#104365 #104365
User since
2006-04-13
90 Artikel
BenutzerIn
[default_avatar]
Vielen Dank !
Die Variante mit der splice funktion ist wohl die bessere Lösung !
<< >> 5 Einträge, 1 Seite



View all threads created 2007-12-15 13:22.