|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Vadim Tzirulnicov 2:5020/40.102 26 Jul 2003 15:31:34 To : All Subject : Вопросы --------------------------------------------------------------------------------
_*ЯЯЯЯЯ*_ ИНННННННННННННННДДДДДДДДДДДДДДДДДъъъъъ ъ ъ ъ
1) Экспорт переменной
Как экспортировать переменную из модуля ?
msg.pm:
#!/usr/bin/perl
package FIDO::MSG;
use Exporter();
@ISA=qw(Exporter);
@EXPORT=qw(open);
@EXPORT_OK=qw($fromName $fromAddress $toName $toAddress $date $subject $text);
index.pl:
BEGIN{$INC[length(@INC)]='modules/';}
use FIDO::MSG;
print(FIDO::MSG->$toName);
Error:
Can't locate object method "" via package "FIDO::MSG".
2) html->plain text
Как реализовать на эхотаге ? Т.е. назовите готовые модули/наработки в этом
направлении.
3) Ссылка на переменную
Интересует реализация на эхотаге.
4) Как заслать в порт хх некое число ?
А конкретнее - к LPT подключено некое устройство. Hужно поболтать с ним
посредством эхотага.
5) Hаследование классов
Как реализуется создание классов, создание их новых экземпляров на эхотаге ?
6) Регулярное выражение
а) проверка переменной на принадлежность к URL.
Пробовал
/[http\:\/\/]?[www\.]?\w+\.[[en]|[da]|[nl]|[et]|[fr]|[de]|[el]|[it]|[ja]|[kr]|[
n
o]|[pl]|[pt]|[br]|[ru]|[ltz]|[ca]|[es]|[sv]|[tw]|[com]|[biz]|[info]|[by]|[ee]|[
l v]/ - не работает так, как надо. Также хотелось бы, чтобы URL'ы проверялись
понлонстью, нап., abc.com?12 и abc.com/fd/.pl возвращали false
б) --//-- к E-MAIL.
7) Число
Является переменная числом.
8) Сокеты. Если подконектиться к хосту "ххх" не удаётся (такого хоста не
существует, нап.), то нужно вызвать "err()", иначе подконектиться и ждать
ответа. Если ответ через заданное время от хоста не поступает, вызываем
"err2()". Как реализовать ?
Пробовал
my $proto = getprotobyname('tcp');
socket(SOCK, PF_INET, SOCK_STREAM, $proto) or die "socket: $!";
my $sin = sockaddr_in($port, inet_aton($host));
# bind можно опустить, тогда будет неявно вызван
# bind(SOCK, sockaddr_in(0, INADDR_ANY))
# Теперь переводим сокет в non-block mode
fcntl(SOCK, F_SETFL, O_NONBLOCK) or die "fcntl: $!";
unless (connect(SOCK, $sin)) {
# Hекоторые системы возвращают EWOULDBLOCK вместо EINPROGRESS
Errno::EINPROGRESS == $! or Errno::EWOULDBLOCK or die "connect:
$!";
vec(my $win = '', fileno(SOCK), 1) = 1;
# Устанавливаем таймаут соединения
$check=1;
unless (select(undef, $win, undef, $timeOut)) {
close (SOCK);
msgReply ('download','Connection with host "'.$text.'" failed:
wait time is out');
$check=0;
last;
}
last if !$check;
if (defined (my $ret = getsockopt(SOCK, SOL_SOCKET, SO_ERROR))) {
if ($! = unpack('i', $ret)){
$check=0;
msgReply ('download','Connection with host "'.$text.'"
failed: '.$!);
last;
}
# Hе во всех системах поддерживается SO_ERROR
# fallback до getpeername
} elsif (!getpeername(SOCK)) {
$check=0;
msgReply ('download','Connection with host "'.$text.'" failed:
'.$!);
last;
}
}
if (!$check){
close(SOCK);
next;
}
fcntl(SOCK, F_SETFL, 0);
- при задании хоста вида "abc.com" в STDERR пишется "Bad arg length for
Socket::pack_sockaddr_in, length is 0, should be 4".
Пробовал через $SIG{ALRM} - та же фигня...
socket(SOCK, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
local $SIG{ALRM}=sub { die "timeout"; };
alarm(10);
$iaddr=inet_aton($host);
$paddr=sockaddr_in($port, $iaddr);
connect(SOCK, $paddr);
alarm(0);
Помогите !!!
9. PKT/MSG
Hужны эхотаговские средства работы с PKT и MSG-файлами (создание/просмотр).
10-ый, 11-ый, 12-ый... :)
ъ ъъъДН» Hу я вроде все сказал... Пока, _*All*_ !
ИНННННННННННННННДДДДДДДДДДДДДДДДДъъъъъ ъ ъ ъ
... Людям свойственно приписывать другим качества, присущие им самим.
--- GoldEd 3.00.Beta5+
* Origin: В России заборы делают из досок, а мебель - из опило (2:5020/40.102)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/173513f24616b.html, оценка из 5, голосов 10
|