Kod:
my $gotUID = 0;
while my $line (<FILE>) {
if ($gotUID) {
print "$line";
next;
} elsif ($line =~ /^From /){
# blablabla
} elsif ($line =~ /^Subject:/) {
# blablabla
} elsif ($line =~ /^X-UID:/) {
# blablabla
$gotUID=1;
}
}
Jesli na przyklad masz zmienne w stylu $From, $Subject, $UID to mozna i tak...
Kod:
my ($From, $Subject);
my $UID = undef;
while my $line (<FILE>) {
chomp; # obetnij \n alnbo \r\n bo inaczej $ w regexie nie zlapie konca linii :) przynajmniej pod windows
if (defined $UID) {
print "$line\n"; # teraz dodajemy \n sami
next;
} elsif ($line =~ /^From /){
# blablabla
} elsif ($line =~ /^Subject:\s(.*?)$/) {
$Subject = $1;
} elsif ($line =~ /^X-UID: (.*?)$/) {
$UID=$1; # zapisz do zmiennej - juz jest zdefiniowana
}
}
wtedy gdy juz zlapiemy UID i zmienna bedzie okreslona a nie undef to polecimy na skroty... rowniez uzylem elsif aby w dla kazdej linii byl sprawdzany 1 IF a nie cala seria nawet gdy wczesniejszy zostal juz dopasowany...