Schrift
[thread]8931[/thread]

Arrays



<< >> 6 Einträge, 1 Seite
blaise4714
 2007-04-19 17:03
#76057 #76057
User since
2007-04-18
22 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo Alle,
ich habe eine Frage über Arrays:
ich habe zwei Arrays definiert:
@test1 = ("1","2","3","0","0","0",&quot
;0","t","5","8","0","0","56)
@test2 = ("0","0","0","z","i","p",&quot
;y","u","9","9","8","9","10&qu
ot;,"58")

ich will jetzt der array @test1 so verändert, dass an den Stellen wo "0" steht, mit den elemente von @test2 gefüllt sind. An ende soll folgende ausgeben:
@test1 = ("1","2","3","z","i","p",&quot
;y","t","5","8","8","9","56).

kann jmd mir bitte sagen, wie es geht?
danke im vorraus
renee
 2007-04-19 17:09
#76058 #76058
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code: (dl )
1
2
3
4
5
for my $i(0..$#test1){
if($test1[$i] == 0){
$test1[$i] = $test2[$i];
}
}
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/
Ronnie
 2007-04-19 17:32
#76059 #76059
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
oder mit map:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/perl

use strict;
use warnings;

use Data::Dumper;

my @test1 = ("1","2","3","0","0","0","0","t","5","8","0","0","56");
my @test2 = ("0","0","0","z","i","p","y","u","9","9","8","9","10","58");

@test1 = map { $test1[$_] eq '0' ? $test2[$_] : $test1[$_] } 0 .. $#test1;
print Dumper \@test1;
Gast Gast
 2007-04-19 19:22
#76060 #76060
danke
bloonix
 2007-04-20 12:43
#76061 #76061
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
[quote=renee,19.04.2007, 15:09]
Code: (dl )
1
2
3
4
5
for my $i(0..$#test1){
   if($test1[$i] == 0){
       $test1[$i] = $test2[$i];
   }
}
[/quote]
Ich bevorzuge diese Variante, weil sie erheblich schneller ist... map ist so
langsam, weil intern anonyme Arrays erzeugt werden. Aber wegen

Argument "t" isn't numeric in numeric eq (==) at

sollte '==' durch 'eq' ersetzt werden, da es auch nichtnumerische Inhalte
im Array gibt.
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.
Ronnie
 2007-04-20 18:40
#76062 #76062
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
[quote=opi,20.04.2007, 10:43]Ich bevorzuge diese Variante, weil sie erheblich schneller ist... map ist so
langsam, weil intern anonyme Arrays erzeugt werden.[/quote]
Spielt bei 99,9% meiner Anwendungen keine Rolle. Dafür ist es syntaktisch einfach schöner, worauf ich tatsächlich zumeist mehr Wert lege.
<< >> 6 Einträge, 1 Seite



View all threads created 2007-04-19 17:03.