URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 8572
[ Назад ]

Исходное сообщение
"Perl, скрипт arpwatch"

Отправлено Alexovi4 , 29-Дек-09 11:26 
Здравствуйте.
Привожу кусок скрипта на Perl с сайта xgu.ru. Подскажите, что выполняют его строки:

###Текст скрипта mac2port
......
while (<SNMP>)
{
        chomp;
        s@.1.3.6.1.2.1.17.4.3.1.1@@;            ### <---???
        my ($oid, $mac) = split /=\s*/;         ### <---???
        $_=$mac;
        s@"@@g; s@\s*$@@; s@ @:@g; s@(.)@\l\1@g; s@^0@@; s@:0@:@g; ### <---???
        $mac_table{$_}=$oid;                                       ### <---???  
}  
close(SNMP);
......


Содержание

Сообщения в этом обсуждении
"Perl, скрипт arpwatch"
Отправлено allez , 29-Дек-09 13:26 
>Здравствуйте.
>Привожу кусок скрипта на Perl с сайта xgu.ru. Подскажите, что выполняют его
>строки:
>
>###Текст скрипта mac2port
>......
>while (<SNMP>)
>{
>        chomp;
>        s@.1.3.6.1.2.1.17.4.3.1.1@@;   ### <---???

Это обычная функция замены подстроки s///, только в качестве разделителей использованы
символы "@".

>        my ($oid, $mac) = split /=\s*/;         ### <---???

Поток входных данных разделяется на части. В качестве символа-разделителя выступает знак равенства,
сопровождаемый пробельными символами. Полученные результаты присваиваются переменным $oid и
$mac соответственно.

>        $_=$mac;
>        s@"@@g; s@\s*$@@; s@ @:@g; s@(.)@\l\1@g; s@^0@@; s@:0@:@g; ### <---???

См. первое примечание про s///.

>        $mac_table{$_}=$oid;     ### <---???

Создается хэш (он же ассоциативный массив), в котором в качестве ключа используется $mac, а в
качестве значения - $oid.


"Perl, скрипт arpwatch"
Отправлено Pahanivo , 29-Дек-09 14:30 
>[оверквотинг удален]
>>        $_=$mac;
>>        s@"@@g; s@\s*$@@; s@ @:@g; s@(.)@\l\1@g; s@^0@@; s@:0@:@g; ### <---???
>
>См. первое примечание про s///.
>
>>        $mac_table{$_}=$oid;     ### <---???
>
>Создается хэш (он же ассоциативный массив), в котором в качестве ключа используется
>$mac, а в
>качестве значения - $oid.

угу еще одно существенно - по дефолту перл работает с $_


"Perl, скрипт arpwatch"
Отправлено allez , 29-Дек-09 15:41 
>угу еще одно существенно - по дефолту перл работает с $_

Да, и конструкции вроде "$_=$mac;" - дурной тон и потенциальный источник неприятностей.
Но до этой тригонометрии автор темы, похоже, пока не дошел, еще только таблицу умножения
осиливает. :-)


"Perl, скрипт arpwatch"
Отправлено Pahanivo , 29-Дек-09 16:23 
>>угу еще одно существенно - по дефолту перл работает с $_
>
>Да, и конструкции вроде "$_=$mac;" - дурной тон и потенциальный источник неприятностей.
>
>Но до этой тригонометрии автор темы, похоже, пока не дошел, еще только
>таблицу умножения
>осиливает. :-)

ваще перл по примерам учить не есть гут )
надо толмуд толковый )