Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Linux и FreeBSD » Программирование в *nix » syntax error at ./filename.pl line 138, at EOF

Ответить
Настройки темы
syntax error at ./filename.pl line 138, at EOF

Пользователь


Сообщения: 68
Благодарности: 1

Профиль | Отправить PM | Цитировать


доброго времени суто.

есть скрипт получения учетных данных почтовых пользователей, для переноса на другой почтовый сервис, который не отрабатывает:

Код: Выделить весь код
#!/usr/bin/perl -w

use CLI;

%translationTable=(
    RealName => 'cn',
    Password => 'userPassword',
    City => 'l',
    Departament => 'ou',
    Title => 'discription',
    FirstName => 'givenName',
    FamelyName => 'sn',
    );

#check argument's

if(@ARGV<1) {
    print "usage: MakeLDIF.pl account_list.txt\n";
    exit;
    }
print "Domain: ";
my $Domain = <STDN>;
chomp $Domain;

$CGServerAddress = $Domain;

print "Login (Enter for \"Postmaster\@$Domain\"): ";
my $Login = <STDN>;
chomp $Login;
    if ($Login eq '') { $Login = "Postmaster\@$Domain"; }
    print "Password: ";
    my $Password = <STDN>;
    chomp $Password;

my $cli = new CGP::CLI( { PeerAddr => $CGServerAddress,
                        PeerPort => 106,
                        login => $Login,
                        password => $Password } )
                        || die "Can't login to CGPro: ".$CGP::ERR_STING."\n";

my $lineNum=0;
my $nAdded=0;

open(FILE,">Accounts.ldif") || die "can't create file";

while(<>) {
    chomp($_);
    $lineNum++;
    my ($name,$settings);

    if(/.*\/(.+)\.macnt$/i) {
        $name=$1;
        } else {
                print "Bad line in inpu: $_\n";
                next;
                {
        print "Name=$name\n";
        unless($Settings=$cli->GetAccontSettings("$name\@$Domain")) {
        die "Error: ".$cli->getErrMessage.", quitting";
        {
        print FILE "dn: uid=$name,cn=$Domain\n";
        print FILE "objectclass: top,person,organizationalPerson,inetOrgPerson,CommuniGateAccount\n";
        print FILE "mail: $name\@$Domain\n";
        print FILE "uid: $name\n";
        foreach (keys %$Settings) {
            my $key=$_;
            my $value=@$Settings{$key};
            $key=$translationTable{$key} if(exist($translationTable{$key}));
            print FILE "$key: ".convertValue($value)."\n";
            }
        print FILE "\n\n";

        $nAdded++;
        }
print " $nAdded records added.\n";
close(FILE);
$cli->Logout;

sub convertValue {
    my $data = $_[0];
    if(!defined($data)) {
        return '""';
        } elsif(ref($data) eq 'HASH') {
        my $outp='"{';
        foreach (sort keys %$data) {
            my $value=@$data{$_};
            $outp .=convertValue2($_,$translate).'='.convertValue2($value,$translate).';';
            $outp.= '}"';
        }
        return $outp;
        } elsif(ref($data) eq 'ARRAY') {
            my $outp='';
            my $first=1;
            foreach (@$data) {
                if(!$first) { $outp.=','; } else { $first=0; }
                $outp.=convertValue2($_,$translate);
            }
            return $outp;
            } else {
                if($data =~ /[\x00-\x1F\x7F]/) {
                    $data =~ s/([\x00-\x1F\x7F])/'\\'.('0'x(3-length(ord($1)))).ord($1)/ge;
                    return '"' .$data .'"';
                    } else {
                        return $data;
                        }
            }
}
sub convertValue2 {
    my $data = $_[0];
    if(!defined($data)) {
        return '""';
        } elsif(ref($data) eq 'HASH') {
        my $outp='{';
        foreach (sort keys %$data) {
            my $value=@$data{$_};
            $outp .= convertValue2($_,$translte).'='.convertValue2($value,$translate).';';
            }
        $outp.= '}';
        return $outp;
        } elsif(ref($data) eq 'ARRAY') {
            my $outp='(';
            my $first=1;
            foreach (@data) {
                if(!$first) { $outp.=','; } else { $first=0; }
                $outp.=convertValue2($_,$translate);
                }
            $outp.= ')';
            return $outp;
            } else {
                if($data =~ /[\W_]/ || $data eq '') {
                    $data =~ s/([\x00-\x1F\x7F])/'\\'.('0'x(3-lenth(ord($1)))).ord($1)/ge;
                    return '"' . $data . '"';
                } else {
                return $data;
                }
            }
}
__END__;
после выполнения выдает ошибку:

Missing right curly or square bracket at ./filename.pl line 138, at end of line
syntax error at ./filename.pl line 138, at EOF
Execution of ./filename.pl aborted due to compilation errors.

Подскажите пожалуйста, из-за чего ошибка и как исправить.
заранее спасибо

-------
ленивый админ лучше админа-стахановца, т.к. делает все один раз чтоб больше не напрягаться.


Отправлено: 16:22, 17-09-2013

 

Аватара для MakaBooka

Старожил


Сообщения: 341
Благодарности: 45

Профиль | Отправить PM | Цитировать


ошибка из-за скобычек. расставить правильно.

Отправлено: 18:58, 18-09-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Linux и FreeBSD » Программирование в *nix » syntax error at ./filename.pl line 138, at EOF

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
.NET - StreamReader как от него получить filename? RUVATA Программирование и базы данных 2 26-08-2010 13:51
Утилиты - [addon] Windows Explorer filename extension column 1.0.4 dimich22 Наборы обновлений для Windows XP/2003/Windows 7 13 05-05-2010 14:48
Вечная проблема ACER (Audio Line In to Line Out) 988essence Ноутбуки 4 22-03-2010 15:11
[решено] Подкиньте хорошие syntax highlighting для AutoIT в редакторе CrimsonEditor evg64 AutoIt 3 30-08-2009 10:35
C/C++ - [решено] PHP. Fatal error: Function name must be a string in /var/www/index.php on line 15 Artem-Samsung Программирование и базы данных 6 29-11-2008 18:37




 
Переход