Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

perl

11K
14 июня 2005 года
Mlix
7 / / 14.06.2005
#!/usr/bin/perl

open(IN,"pwd");
open (OUT,">pwds");
while(<IN>) {
chomp;
if($_ ne ") {
($u,@undef)=split ':';
print OUT "$u:$u\n";
}
}
close(IN);
close(OUT);


Этот сценарий по идеи должен перегонять данные из /etc/passwd в файл для брута типа "login:login" но perl выдает ошибки, непойму в чем дело :{ в чем ошибка?(ответ в ДНК не принемается):angel:
300
15 июня 2005 года
ReDrum
689 / / 20.04.2000
Если такая ошибка
(Might be a runaway multi-line "" string starting on line 7)
(Do you need to predeclare print?)
Backslash found where operator expected at test.pl line 9, near "$u\"
(Missing operator before \?)
String found where operator expected at test.pl line 9, at end of line
(Missing semicolon on previous line?)
syntax error at test.pl line 9, near "print OUT "$u"
Can't find string terminator '"' anywhere before EOF at test.pl line 9.

То понятно что надо заменить кавычки в строке if $_ ne "!!!!!
2
15 июня 2005 года
squirL
5.6K / / 13.08.2003
Цитата:
Originally posted by Mlix
#!/usr/bin/perl

open(IN,"pwd");
open (OUT,">pwds");
while(<IN>) {
chomp;
if($_ ne ") {
($u,@undef)=split ':';
print OUT "$u:$u\n";
}
}
close(IN);
close(OUT);


ошибка именно в ДНК...
подумайте, что такое ($u, @undef) = split ':';
и что печатает вам print OUT "$u:$u"... объясните мне это, тогда по ходу объяснения сами пойммете где трабл.
зачем считывать в файл два логина подряд??
и, кстати, хэши паролей не хранятся в passwd.

300
15 июня 2005 года
ReDrum
689 / / 20.04.2000
Цитата:
Originally posted by squirL
ошибка именно в ДНК...
подумайте, что такое ($u, @undef) = split ':';
и что печатает вам print OUT "$u:$u"... объясните мне это, тогда по ходу объяснения сами пойммете где трабл.
зачем считывать в файл два логина подряд??
и, кстати, хэши паролей не хранятся в passwd.



;)))

ну как хочешь, обясним, сперва читаем perldoc -f split

Небольшой код

Код:
#!/usr/bin/perl
use strict;
use warnings;

for (qw/login2:login1 login1:login2 /) {
    my ($u,@undef)=split ':';
    print  "$u:$u\n";
}
# результат
# login2:login2
# login1:login1


split ":" == split ":", $_
Все дело в волшебный переменных, и никакого днк ;)
Хотя, называть списки @undef - не есть гут.
2
15 июня 2005 года
squirL
5.6K / / 13.08.2003
Цитата:
Originally posted by ReDrum
;)))

ну как хочешь, обясним



да знаю я... :D только скажи мне, какой мистический смысл в занесении в файл двух логинов через двоеточие?

300
15 июня 2005 года
ReDrum
689 / / 20.04.2000
Цитата:
Originally posted by squirL
да знаю я... :D только скажи мне, какой мистический смысл в занесении в файл двух логинов через двоеточие?


Это знает только человек отметившийся первым постом :). А так никаких несуразностей кроме синтаксической ошибки нет

11K
15 июня 2005 года
Mlix
7 / / 14.06.2005
Спасибо огромное, очень помогло :)
2
15 июня 2005 года
squirL
5.6K / / 13.08.2003
Цитата:
Originally posted by ReDrum
Это знает только человек отметившийся первым постом :). А так никаких несуразностей кроме синтаксической ошибки нет



тоже знаю... есть просто идиотская привычка копать в глубь. а помимо синтаксической ошибки вижу еще и логическую несуразность

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог