linux-l: Perlscript

Ralf Bärwaldt Ralf.Baerwaldt at partner.bmw.de
Mi Mär 21 13:01:45 CET 2001


> Hat jemand eine Idee, wodurch das fehlen zustande kommt ?????
> 
Hallo Manuel,

ich bin mir nicht sicher, ob ich dein Programm richtig
verstanden habe. Aber ich habe mal eine Aenderung
versucht (siehe unten).

Mit freundlichen Gruessen
Ralf Baerwaldt


#!/usr/bin/perl
#
# Dieses Script fuegt an aufeinanderfolgenden Seiten das "f" bzw. das
"ff" an.
#
# DATE CREATED     : 11.04.00
# DATE LAST UPDATE : 11.04.00
while (my $zeile = <>) {
	my @a;
	
	#	Das Script setzt voraus, dass alle Seitenzahlen hinter einem
	#	"<rf" stehen und mit "©<" enden.

	@a = split /<rf/, $zeile;
	my $zeilen_anfang = $a[0] . '<rf';

	@a = split /©</, $a[1];
	my $seiten_zahlen = $a[0];

	@a = split /©</, $zeile;
	my $zeilen_ende = '©<' . $a[1];

    if ($seiten_zahlen =~ /(.*?)([0-9].*[0-9])/ ) {
		print $zeilen_anfang;

 @seiten = split /, /, $seiten_zahlen;
 $letzte_seite = $seiten[0];
 $string = $letzte_seite;
 for ($i = 1; $i <= $#seiten; ++$i) {
     $seite = $seiten[$i];
     if ($seite == $letzte_seite + 1) {
  		$string .= "f";
  		$string =~ s/ff+/ff/;
     } else {
  		print "$string, ";
  		$string = $seite;
     }
     $letzte_seite = $seite;
 }
 print "$string$zeilen_ende";
    }
 else {
	print "$zeile";
    }
}



Mehr Informationen über die Mailingliste linux-l