local $/ = ",";
my $dn = "";
while(<>) {
my $complete_dn;
if(m/ \A (.+) \n ( \w+ = .+ ,) \z /sx) {
$complete_dn = $dn . $1;
$dn = $2;
}
else {
$dn .= $_;
}
if($_ = $complete_dn) {
s/\n+//g;
do_whatever_with($_);
}
}
####
local $/ = ",";
my $dn = "";
while(<>) {
my $complete_dn;
if(m/ \A (.+ = .+) \n ( \w+ = .+ ,) \z /sx) {
$complete_dn = $dn . $1;
$dn = $2;
}
else {
$dn .= $_;
}
if($_ = $complete_dn) {
s/\n+//g;
print $_, "\n";
}
}
####
#!/usr/bin/perl -w
use strict;
undef $/;
my $data = ;
my @munged = ($data) x length $data;
substr $munged[$_], $_, 0, "\n" for 0 .. $#munged;
print @munged;
__END__
cn=Perl Monks,ou=Dining Hall,ou=Monastery,c=Universe