perl по учебе, помощь по доке

И всё прочее, что касается HTML
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Spook1680
лейтенант
Сообщения: 996
Зарегистрирован: 2009-07-28 12:26:09

perl по учебе, помощь по доке

Непрочитанное сообщение Spook1680 » 2012-05-22 11:33:34

Добрый день
подскажите плиз
в докум. perl для знатока это примитв будет.

Net::Ping - check a remote host for reachability
там есть хороший пример

Код: Выделить всё

$p = Net::Ping->new("icmp");
$p->bind($my_addr); # Specify source interface of pings
foreach $host (@host_array)
{
print "$host is ";
print "NOT " unless $p->ping($host, 2);
print "reachable.\n";
sleep(1);
}
$p->close();
пытаюсь прикрутить if else но не выходит.

задача к примеру если google.ru не пингуется
то должно выполниться
`cp test1 test`
если пингуеться то ничего не происходит.
"Гента вообще форкLFS в свою очередь мутант Скалвари
которая BSD с ядром Линя BSD - мутировал-AT&T UNIX
а там был UNICS - MULTICS, счёты, глиняные таблички, палочки,
большой взрыв, сингулярность, пиз...ц. Вывод: RedHat использует пиз..ц. "

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

ChihPih
ст. прапорщик
Сообщения: 568
Зарегистрирован: 2009-09-04 12:23:30
Откуда: Где-то в России...
Контактная информация:

Re: perl по учебе, помощь по доке

Непрочитанное сообщение ChihPih » 2012-05-22 11:38:38

А как пытаетесь прикрутить?
www.info-x.org - информационный ресурс о ОС FreeBSD.

Аватара пользователя
Spook1680
лейтенант
Сообщения: 996
Зарегистрирован: 2009-07-28 12:26:09

Re: perl по учебе, помощь по доке

Непрочитанное сообщение Spook1680 » 2012-05-22 11:47:36

ChihPih писал(а):А как пытаетесь прикрутить?

Код: Выделить всё

#!/usr/bin/perl -w
use Net::Ping;
$host = '192.168.0.59';
$my_addr = '192.168.0.59';
@host_array = 'google.ru';
$vtor = `cp /test1 /test`;

$p = Net::Ping->new("icmp");
$p->bind($my_addr); # Specify source interface of pings
foreach $host (@host_array)
{
print "$host is ";
$vtor unless $p->ping($host, 2);
print "reachable.\n";
sleep(1);
}
$p->close();

"Гента вообще форкLFS в свою очередь мутант Скалвари
которая BSD с ядром Линя BSD - мутировал-AT&T UNIX
а там был UNICS - MULTICS, счёты, глиняные таблички, палочки,
большой взрыв, сингулярность, пиз...ц. Вывод: RedHat использует пиз..ц. "

ChihPih
ст. прапорщик
Сообщения: 568
Зарегистрирован: 2009-09-04 12:23:30
Откуда: Где-то в России...
Контактная информация:

Re: perl по учебе, помощь по доке

Непрочитанное сообщение ChihPih » 2012-05-22 12:21:47

Еще бы, для задания переменной вы используете апострофы (которые используется для выполнения системных команд и получения от них результата), когда надо вывести строку. То есть вам надо использовать одинарные или двойные кавычки для инициализации переменной $vtor.
www.info-x.org - информационный ресурс о ОС FreeBSD.

Аватара пользователя
Spook1680
лейтенант
Сообщения: 996
Зарегистрирован: 2009-07-28 12:26:09

Re: perl по учебе, помощь по доке

Непрочитанное сообщение Spook1680 » 2012-05-22 12:43:51

ChihPih писал(а):Еще бы, для задания переменной вы используете апострофы (которые используется для выполнения системных команд и получения от них результата), когда надо вывести строку. То есть вам надо использовать одинарные или двойные кавычки для инициализации переменной $vtor.
ок.
ну тут простенько но работает теперь.

Код: Выделить всё

#!/usr/bin/perl -w
use Net::Ping;
$host = '192.168.0.63';
$my_addr = '192.168.0.63';
@host_array = 'google.ru';

$p = Net::Ping->new("icmp");
$p->bind($my_addr); # Specify source interface of pings
foreach $host (@host_array)
{
print `cp /test1 /test ` unless $p->ping($host, 2);
sleep(1);
}
$p->close();
~             
"Гента вообще форкLFS в свою очередь мутант Скалвари
которая BSD с ядром Линя BSD - мутировал-AT&T UNIX
а там был UNICS - MULTICS, счёты, глиняные таблички, палочки,
большой взрыв, сингулярность, пиз...ц. Вывод: RedHat использует пиз..ц. "

snorlov
подполковник
Сообщения: 3927
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Re: perl по учебе, помощь по доке

Непрочитанное сообщение snorlov » 2012-05-22 13:11:24

$host зачем инициализировали, это ж элемент из массива $host_array

Аватара пользователя
Spook1680
лейтенант
Сообщения: 996
Зарегистрирован: 2009-07-28 12:26:09

Re: perl по учебе, помощь по доке

Непрочитанное сообщение Spook1680 » 2012-05-22 13:23:51

snorlov писал(а):$host зачем инициализировали, это ж элемент из массива $host_array
ок.
т.е foreach в переменную $host не копируется элемент массива $host_array
Переменная $host в теле цикла — это и есть сам элемент массива.
ОК. Спасибо, я не правильно понимал принцип работы.
"Гента вообще форкLFS в свою очередь мутант Скалвари
которая BSD с ядром Линя BSD - мутировал-AT&T UNIX
а там был UNICS - MULTICS, счёты, глиняные таблички, палочки,
большой взрыв, сингулярность, пиз...ц. Вывод: RedHat использует пиз..ц. "

Аватара пользователя
Spook1680
лейтенант
Сообщения: 996
Зарегистрирован: 2009-07-28 12:26:09

Re: perl по учебе, помощь по доке

Непрочитанное сообщение Spook1680 » 2012-05-24 10:00:16

snorlov писал(а):$host зачем инициализировали, это ж элемент из массива $host_array
Добрый день!
snorlov вы не подскажите!
Продолжаю изучение и не пойму, цикл until
как его прикрутить! Типа пинг хоста продолжаеться, пока нет ответа. Как только получили ответ, until прикращает действие

К примеру кусок из доки.
понимаю его так, подключили модуль use Net::Ping;
присвоем его скаляру $p
$p пингует хост (pupsik.ru)
если ping удался то выводит сообщение $host is alive

Код: Выделить всё

use Net::Ping;
$p = Net::Ping->new();
print "$host is alive.\n" if $p->ping($host);
$p->close();
К примеру, мне не понятно, как можно запихнуть - информацию о том что ping есть, пихать его в массив и сравнивать.
"Гента вообще форкLFS в свою очередь мутант Скалвари
которая BSD с ядром Линя BSD - мутировал-AT&T UNIX
а там был UNICS - MULTICS, счёты, глиняные таблички, палочки,
большой взрыв, сингулярность, пиз...ц. Вывод: RedHat использует пиз..ц. "

ChihPih
ст. прапорщик
Сообщения: 568
Зарегистрирован: 2009-09-04 12:23:30
Откуда: Где-то в России...
Контактная информация:

Re: perl по учебе, помощь по доке

Непрочитанное сообщение ChihPih » 2012-05-24 10:55:10

Продолжаю изучение и не пойму, цикл until
как его прикрутить! Типа пинг хоста продолжаеться, пока нет ответа. Как только получили ответ, until прикращает действие
Оператор until робит до тех пор пока результат проверяемого выражение равен 0 (false). То есть в самом простом случае, код может выглядеть так:

Код: Выделить всё

use Net::Ping;
$p = Net::Ping->new();
until ($p->ping($host)){
  print "Host is down\n";
}
print "$host is alive.\n";
$p->close();
К примеру, мне не понятно, как можно запихнуть - информацию о том что ping есть, пихать его в массив и сравнивать.
Не совсем понятно что для чего нужно и зачем?
www.info-x.org - информационный ресурс о ОС FreeBSD.

Аватара пользователя
Spook1680
лейтенант
Сообщения: 996
Зарегистрирован: 2009-07-28 12:26:09

Re: perl по учебе, помощь по доке

Непрочитанное сообщение Spook1680 » 2012-05-24 11:42:57

К примеру, мне не понятно, как можно запихнуть - информацию о том что ping есть, пихать его в массив и сравнивать.
Не совсем понятно что для чего нужно и зачем?
[/quote]

until цикл как раз и хотел прикрутить. пока пинга нет, цикл работает и будет пинговать хост - пока не получит от него ответа.
Как только пинг пошел (типа комп. включили пинг есть). цикл until перестал выполняться, выполняеться команда `cp /test2 /test`
"Гента вообще форкLFS в свою очередь мутант Скалвари
которая BSD с ядром Линя BSD - мутировал-AT&T UNIX
а там был UNICS - MULTICS, счёты, глиняные таблички, палочки,
большой взрыв, сингулярность, пиз...ц. Вывод: RedHat использует пиз..ц. "