#!/usr/bin/perl use strict; use warnings; use Data::Dumper; my @old = ( 2, 5, 13, undef, 6, 8, undef, 3); # mit splice (rückwärts durch das Array) for (reverse 0..$#old) { warn "splicing: \@old[$_]" and splice @old, $_, 1 unless defined $old[$_]; } print Dumper \@old; # ohne Zählvariable @old = ( 2, 5, 13, undef, 6, 8, undef, 3); my @new = (); for (@old) { push @new, $_ if defined $_ }; @old = @new; print Dumper \@old; # die perl-typische Variante @old = ( 2, 5, 13, undef, 6, 8, undef, 3); @old = grep { defined } @old; print Dumper \@old;