Portál AbcLinuxu, 13. května 2025 19:33
my $index = 0;
while ( $index <= $#addr ) {
if ( $addr[$index] =~ /^\s*$/ ) {
splice( @addr, $index, 1 );
} else {
$index++;
}
}
@addr = grep $_, @addr;
@addr = grep {$_ ne q()} @addr;
@addr = grep {$_ ne q()} @addr;
@addr = grep defined && length, @addr;
next if(/^\s*$/);odfiltrovat prazdne zaznamy? Nebudes muset to pole cele znovu prochazet...
$a=grep /^\S/, @addr; #coz mi spocita kolik je tam plnych radku @addr=reverse(@addr); splice(@addr, $a)môžete nahradiť jednoduchým
@addr = reverse grep /^\S/, @addr;navyše nebude robiť chyby v pri existencii prázdneho prvku uprostred poľa.
Btw, hlavička mailu môže byť rozdelená na viacero riadkov
@vystup = @mail = <>; @adr = map { s/^To://; $_ } grep /^To:|(>[,\s])$/, @mail;
use Email::Valid; @addr=grep defined, map {Email::Valid->address($_)?$_:undef} @addr;
use Email::Valid; @addr = grep { Email::Valid->address ($_) } @addr;
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.