Обычно я загружаю parse ldif из файла, используя следующий метод:
use Net::LDAP::LDIF;
use Net::LDAP::Entry;
use Data::Dumper;
my $ldif = Net::LDAP::LDIF->new( "filename.ldif", "r") or die "file not exits\n";
while( not $ldif->eof ( ) ) {
$entry = $ldif->read_entry ( );
print Dumper $entry;
}
но вместо загрузки из файла мне нужно загрузить файл формата LDIF непосредственно из переменной строки. поэтому код будет выглядеть так:
use Net::LDAP::LDIF;
use Net::LDAP::Entry;
use Data::Dumper;
my $var_ldif = "dn: cn=Sheri Smith,ou=people,dc=example,dc=com
objectclass: inetOrgPerson
cn: Sheri Smith
sn: smith
uid: ssmith
userpassword: sSmitH
carlicense: HERCAR 125
homephone: 555-111-2225";
my $ldif = Net::LDAP::LDIF->new( $var_ldif, "r") or die "file not exits\n";
while( not $ldif->eof ( ) ) {
$entry = $ldif->read_entry ( );
print Dumper $entry;
}
так, как это сделать правильно?
спасибо и извините за этот глупый вопрос. :) БР//
ИСХОДНАЯ ИДЕЯ Моей целью является создание скрипта, который детально сравнивает данные LDIF до и после (от dn до значений атрибутов, одно за другим). сами данные LDIF действительно огромны, около 10 ГБ или больше на файл.
* Итак, у меня возникла идея прочитать файл для каждого DN и сравнить его до и после. анализ каждого DN хранится в $variable_before и $variable_after. вот почему мне действительно нужны данные из переменной $, потому что «данные формата LDIF» поступают из вывода предыдущего процесса. *
Мне нужен LDAP::LDIF, чтобы упростить преобразование строки LDIF в хэш-ссылку perl.
Я избегаю использования временного файла, потому что "данных DN" действительно много, обработка будет медленнее при использовании временного файла.