#! /usr/bin/perl use strict; use warnings; my @data = ( 'eins', 'zwei /*', 'drei', 'vier */', 'fuenf /* bla */', 'sechs /* foo */ sieben', ); my $found = 0; for my $element ( @data ) { # full comment if ( $element =~ s{ /\* .*? \*/ }{}x ) { next; } # beginning of comment if ( $element =~ s{ /\* .*? }{}x ) { $found = 1; } # end of comment elsif ( $element =~ s{ .*? \*/ }{}x ) { $found = 0; } # lines between beginning and end of comment elsif ( 1 == $found ) { $element = undef; next; } } # undefinierte und leere Elemente werden entfernt @data = grep { defined $_ && 0 < length $_ } @data; use Data::Dumper; print Dumper \@data;