Hello namelkcip, and welcome to the Monastery!
Here is one approach:
#! perl
use strict;
use warnings;
my $record;
while (<DATA>)
{
if (/^object network/) # new record
{
process_record($record) if $record;
$record = $_;
}
else
{
$record .= $_;
}
}
process_record($record) if $record;
sub process_record
{
my ($record) = @_;
print $record, '-' x 36, "\n";
}
__DATA__
object network Microsoft.Lync.Host.3
host 138.108.25.111
description Help Desk Ticket #476739
object network Microsoft.Lync.Host.4
host 138.108.25.112
description Help Desk Ticket #476739
object network Microsoft.Lync.Host.5
host 138.108.25.113
description Help Desk Ticket #476739
object network Microsoft.Lync.Host.6
Output:
12:41 >perl 891_SoPW.pl
object network Microsoft.Lync.Host.3
host 138.108.25.111
description Help Desk Ticket #476739
------------------------------------
object network Microsoft.Lync.Host.4
host 138.108.25.112
description Help Desk Ticket #476739
------------------------------------
object network Microsoft.Lync.Host.5
host 138.108.25.113
description Help Desk Ticket #476739
------------------------------------
object network Microsoft.Lync.Host.6
------------------------------------
12:41 >
This handles records of variable line lengths, while still only reading the data line-by-line.
Hope that helps,