Thread Bestimmtes Element im array löschen (21 answers)
Opened by kerstin at 2004-08-19 11:31

Crian
 2004-08-19 13:20
#49394 #49394
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/usr/bin/perl
use strict;
use warnings;
use List::Util qw//;

=pod

=head1 FRAGE VON KERSTIN

Is es in Perl möglich, in einem dynamischen Array ein bestimmtes element zu löschen?
Die Stelle an der das Element ist, steht nicht fest.

=cut

my @array = List::Util::shuffle ('Zitrone', 'Apfel', 'Birne', 'Kiwi', 'Pflaume', 'Banane', 'Kiwi', 'Kiwi');
# Durch shuffle weiß ich nicht, an welcher Stelle Kiwi ist...
print "Vorher:\n";
print "'$_'\n" for @array;

print "Entferne 'Kiwi' ...\n";


#
# Möglichkeit 1 mit Grep und zwei Arrays:
#
my @ohnekiwi = grep {$_ ne 'Kiwi'} @array;


print "Nachher 1:\n";
print "'$_'\n" for @ohnekiwi;

#
# Möglichkeit 2 mit splice:
#
my @kiwiindex;
for (0..$#array) { push @kiwiindex, $_ if $array[$_] eq 'Kiwi' }

if (@kiwiindex) {
splice @array, $_, 1 for reverse @kiwiindex;
}
else {
print "'Kiwi' nicht im Array gefunden\n";
}


print "Nachher 2:\n";
print "'$_'\n" for @array;


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
Vorher:
'Apfel'
'Kiwi'
'Kiwi'
'Zitrone'
'Kiwi'
'Pflaume'
'Birne'
'Banane'
Entferne 'Kiwi' ...
Nachher 1:
'Apfel'
'Zitrone'
'Pflaume'
'Birne'
'Banane'
Nachher 1:
'Apfel'
'Zitrone'
'Pflaume'
'Birne'
'Banane'


Besser?\n\n

<!--EDIT|Crian|1092907352-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite

View full thread Bestimmtes Element im array löschen