#!/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
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:
(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 "!!!!!
Цитата:
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);
#!/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.
Цитата:
Originally posted by squirL
ошибка именно в ДНК...
подумайте, что такое ($u, @undef) = split ':';
и что печатает вам print OUT "$u:$u"... объясните мне это, тогда по ходу объяснения сами пойммете где трабл.
зачем считывать в файл два логина подряд??
и, кстати, хэши паролей не хранятся в passwd.
ошибка именно в ДНК...
подумайте, что такое ($u, @undef) = split ':';
и что печатает вам print OUT "$u:$u"... объясните мне это, тогда по ходу объяснения сами пойммете где трабл.
зачем считывать в файл два логина подряд??
и, кстати, хэши паролей не хранятся в passwd.
;)))
ну как хочешь, обясним, сперва читаем perldoc -f split
Небольшой код
Код:
split ":" == split ":", $_
Все дело в волшебный переменных, и никакого днк ;)
Хотя, называть списки @undef - не есть гут.
Цитата:
Originally posted by ReDrum
;)))
ну как хочешь, обясним
;)))
ну как хочешь, обясним
да знаю я... :D только скажи мне, какой мистический смысл в занесении в файл двух логинов через двоеточие?
Цитата:
Originally posted by squirL
да знаю я... :D только скажи мне, какой мистический смысл в занесении в файл двух логинов через двоеточие?
да знаю я... :D только скажи мне, какой мистический смысл в занесении в файл двух логинов через двоеточие?
Это знает только человек отметившийся первым постом :). А так никаких несуразностей кроме синтаксической ошибки нет
Спасибо огромное, очень помогло :)
Цитата:
Originally posted by ReDrum
Это знает только человек отметившийся первым постом :). А так никаких несуразностей кроме синтаксической ошибки нет
Это знает только человек отметившийся первым постом :). А так никаких несуразностей кроме синтаксической ошибки нет
тоже знаю... есть просто идиотская привычка копать в глубь. а помимо синтаксической ошибки вижу еще и логическую несуразность