Ich muss mehrzeilige Datensätze einlesen und auf genau 40 Zeilen zuschneiden. Dann packen Sie sie mit zu 45 Zeilen. Sie können so groß wie 70 + Zeilen sein. Diese Datensätze benötigen , um am Ende 45 Zeilen zu sein.Perl: Mehrzeilige Datensätze trimmen
Das Datensatztrennzeichen ist eine Zeile, die mit dem Muster/^ # matchee/beginnt.
Ich nehme an, Sie würden $/auf #matchee setzen.
{
$/ = "#matchee";
while (<>) {
# I need to print first 40
# lines of each record then
# pad to 45 with delimiter as
# last line.
}
}
Beispielprotokoll
REDUNDANCY DEPARTMENT
Anonymous Ave
Item 1
Item 2
<bunch of blank lines>
#matchee
'für meine $ counter (0..39) {...}' – vol7ron
Guter Vorschlag. Bearbeiteter Code entsprechend. –
Wenn Sie eine neuere Version von Perl verwenden, können Sie 'say '..."; 'anstelle von' print' ... \ n ";' ausführen, obwohl ich mir nicht ganz sicher bin, ob Sie die Leitungsbeendigungsvariable setzen . Auch sollte es '#!/Usr/bin/...' sein (kein Leerzeichen) – vol7ron