Am Dienstag, 10. Mai 2005 11.01 schrieb Tielman Koekemoer (TNE):
> Hi all,
>
> I have tried various regular expressions to remove null or empty
> values on array @array1 and create a new array @OPD01 with the values.
> This, however, does not work as I still get a number of empty values
> in the @OPD01 array after this processing. As you'll see I tried
> various things - check for null(\0), empty lines, lines that do not
> contain words etc.
>
> $counter2 = 0;

What's that for? (never used)

>
>         foreach $line ( @array1 )
>         {
>                 $line =~ s/^\s+//;
>                 $line =~ s/\s+$//;
>                 next if $line =~ /!\w/;
>                 next if $line =~ /^\s+$/;
>                 next if $line =~ /'\0'/;
>                 next if $line =~ /^$/;
>
>                 $OPD01[$counter]=$line;
>                 $counter++;

Use push() to avoid holding the current array index.

>         }
>
> Any info would be appreciated.

my @array1=(' ', 'a', '', 'b', "\0", 'c', undef, 'd', ' ', 'e');
my @new=grep {$_ and !/^\s+$/ and !/^\0+$/} @array1;
print join "\n", @new;

# prints:
a
b
c
d
e




>
> TIA
>
> Tielman

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to