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

Array Bearbeitungen

Leser: 1


<< >> 6 Einträge, 1 Seite
RPerl
 2008-02-15 15:49
#105925 #105925
User since
2006-11-26
384 Artikel
BenutzerIn

user image
Hallo Perl-Goetter/innen! :)

ich wollte mal fragen, ob man eigentlich auch in einem array mitten drin eine Veraenderung machen kann.
Beispiel:

@array = (5, 4 , 7, 1, 7, 9, 3, 0);

zu =>

@array = (5, 4 , 7, 1, 8000, 7, 9, 3, 0);

Oder noch besser (und leider bestimmt schwieriger): alle fuenf Elemente lang soll eine Zufallszahl zwischen zwei Werten platziert werden.

Wuensche ein angenehmes WE und bedanke mich fuer eventuelle Antworten! :)


Gruß
Rperl
RPerl
 2008-02-15 16:01
#105926 #105926
User since
2006-11-26
384 Artikel
BenutzerIn

user image
Ah ersteres geht mit splice(). Nur wie ich alle 5 Elemente was einfuegen kann daran arbeite ich noch hehe...
RPerl
 2008-02-15 16:08
#105928 #105928
User since
2006-11-26
384 Artikel
BenutzerIn

user image
So gehts:

Code (perl): (dl )
1
2
3
4
5
6
7
my @array1 = (2, 3, 4, 5, 2, 7, 3, 8 ,9, 1, 3 ,5 ,7, 8, 9, 1, 2, 3, 4, 5, 2, 7, 3, 8 ,9, 1, 3 ,5 ,7, 8, 9, 1);

for(my $int = 0; $int < scalar(@array1); $int=$int+5) {
  splice @array1, $int, 1, int(rand(9999));
}

print @array1;


Geht das auch huebscher?
Taulmarill
 2008-02-15 16:20
#105929 #105929
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
Das dritte Argument für splice() muss 0 und nicht 1 sein, sonst wird ein Element durch ein Neues ersetzt und nicht eingefügt.
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
RPerl
 2008-02-15 16:31
#105931 #105931
User since
2006-11-26
384 Artikel
BenutzerIn

user image
phu danke!
Ronnie
 2008-02-15 17:36
#105936 #105936
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
RPerl+2008-02-15 15:08:48--
Geht das auch huebscher?

Geschmackssache:
Code (perl): (dl )
1
2
3
4
5
6
7
8
use Data::Dumper;

my @l = (2, 3, 4, 5, 2, 7, 3, 8 ,9, 1, 3 ,5 ,7, 8, 9, 1, 2, 3, 4, 5, 2, 7, 3, 
    8 ,9, 1, 3 ,5 ,7, 8, 9, 1);

my @m = map { $_ % 4 == 0 ? ($l[$_-1], int(rand(9999))) : $l[$_-1] } 1..$#l+1;

print Dumper \@m;
<< >> 6 Einträge, 1 Seite



View all threads created 2008-02-15 15:49.