(fwd) Re: HELP любители/знатоки PERL'a

Andrey Gerzhov (kittle@freeland.alex-ua.com)
Sun, 26 Oct 1997 02:01:03 +0300 (EEST)

-- forwarded message --
Path: freeland.alex-ua.com!barmaglot.alexradio.kiev.ua!f188.n463.z2!f385.n463.z2!f159.n463!f238.n5020!f443.n5020!ddt.demos.su!f400.n5020!f70.n465!f85.n465!f154.n465!isd.anet.donetsk.ua!hyppo.anet.donetsk.ua!scelto.ts.kiev.ua!info.elvisti.kiev.ua!glukr!bear.dol.donetsk.ua!bull.dol.donetsk.ua!alex
Newsgroups: fido.ru.unix.bsd
Distribution: fido
X-Comment-To: All
From: Alexei Yakimovich <alex@dol.donetsk.ua>
X-FTN-Sender: Alexei Yakimovich <Alexei.Yakimovich@p128.f154.n465.z2.fidonet.org>
Date: Mon, 20 Oct 97 08:05:40 +0300
Subject: =?KOI8-R?Q?Re=3A_HELP_=CC=C0=C2=C9=D4=C5=CC=C9=2F=DA=CE=C1=D4=CF=CB?=
=?KOI8-R?Q?=C9_PERL'a?=
Message-ID: <Pine.BSF.3.95q.971020100319.220A-200000@bull.dol.donetsk.ua>
References: <62bau7$t1i$1@hyppo.anet.donetsk.ua>
Organization: DOL
X-FTN-AREA: RU.UNIX.BSD
X-FTN-MSGID: bull.dol.donetsk.ua 13880c57
X-FTN-REPLY: hyppo.anet.donetsk.ua b2157467
Mime-Version: 1.0
Content-Type: MULTIPART/MIXED; BOUNDARY="0-1832878440-877331180=:220"
X-FTN-Tearline: ifmail v.2.12
X-FTN-Origin: DOL (2:465/154.128@fidonet)
X-FTN-SEEN-BY: 1/6 463/5 58 94 159 166 188 385 666 465/50 65 70 85 87 106 154
X-FTN-SEEN-BY: 4615/21 4643/2 5000/7 5002/16 5011/13 201 5020/35 47 52 68 200 204
X-FTN-SEEN-BY: 5020/225 238 400 423 443 477 509 5022/5 5023/11 5049/256 5054/9
X-FTN-SEEN-BY: 5066/2 5075/10 5077/3 5084/10
X-FTN-PATH: 465/154 85 70 5020/400 443 238 463/159 385
X-FTN-PATH: 463/188
Lines: 126
Xref: freeland.alex-ua.com fido.ru.unix.bsd:1153

This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Send mail to mime@docserver.cac.washington.edu for more info.

--0-1832878440-877331180=:220
Content-Type: TEXT/PLAIN; charset=KOI8-R
Content-Transfer-Encoding: 8BIT

On Sun, 19 Oct 1997, LiLi WorkServer wrote:

> Доброе времячко всем!!!
>
> Ктонибудь знает как реализовать в PERLе выход из скрипта по нажатию буковки
> (например 'q'),
> без удавления Ентера, в ситуации типа:
> -=-
> #!/usr/local/bin/perl
> while()
> {
> #подготовка данных
> .....
> #вывод данных
> print Данные;
> .....
> #функция прерывющая исполнения по нажатию клавиши
> ???????????
> }
> -=-
> причем getc - не подходит ввиду нужности после буковки удавить Ентер.
>
> ПРОСЬБА ОТВЕТЫ ПРОДУБЛИРОВАТЬ ПИСЬМОМ
> на адрес: avkpa@anet.donetsk.ua
>
> С уважением,
> Ковальчук Андрей.
>
>
>
>
>

Dear,

Собственно скрипт, кот явл. обрезанным аналогом Mshell.
Только выход по 'x':-)

#!/usr/local/bin/perl

( $poor, $cmdfile) = @ARGV;

$menupath = "/usr/local/lib/menus/";

$file = join( '', $cmdfile, ".men");
$menufile = join( '', $menupath, $file);

open ( MENU, "$menufile");
$i = 0; $exec = 0;
while( <MENU>)
{
if ( $_ =~ /s$+?\*\*\*\*\*/) { $exec = 1; $i = 0; next; }
if ( $exec == 0)
{
$menu[ $i] = $_;
#($num, $temp) = split( '\.');
# $printmenu{ $num} = $temp;
}
else
{
( $num, $temp) = split( 'cmd=');
( $num, $poor) = split( ' ', $num);
$execmenu{$num} = $temp;
}
++$i;
}
close ( MENU);

while ( $st ne 'x')
{
print @menu;
print "\n\tSelect your choice [ or x for bye]:";
open( STRIKE, "/dev/tty");
read( STRIKE, $st, 1);
close( STRIKE);
if ( $st ne 'x')
{
# print $execmenu{ $st};
system $execmenu{$st};
system ( "logout");
}
}


Sincerely,

--
Alexei Yakimovich		ISP "Donbass Online"
nic-handle: YA33-RIPE		Donetsk, Ukraine

--0-1832878440-877331180=:220 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=mshell Content-Transfer-Encoding: BASE64 Content-ID: <Pine.BSF.3.95q.971020100620.220B@bull.dol.donetsk.ua> Content-Description: mshell.pl

IyEvdXNyL2xvY2FsL2Jpbi9wZXJsDQoNCiggJHBvb3IsICRjbWRmaWxlKSA9 IEBBUkdWOw0KDQokbWVudXBhdGggPSAiL3Vzci9sb2NhbC9saWIvbWVudXMv IjsNCg0KJGZpbGUgPSBqb2luKCAnJywgJGNtZGZpbGUsICIubWVuIik7DQok bWVudWZpbGUgPSBqb2luKCAnJywgJG1lbnVwYXRoLCAkZmlsZSk7DQoNCm9w ZW4gKCBNRU5VLCAiJG1lbnVmaWxlIik7DQokaSA9IDA7ICRleGVjID0gMDsg DQp3aGlsZSggPE1FTlU+KQ0Kew0KCWlmICggJF8gPX4gL3MkKz9cKlwqXCpc KlwqLykgeyAkZXhlYyA9IDE7ICRpID0gMDsgbmV4dDsgfSANCglpZiAoICRl eGVjID09IDApIA0KCXsNCgkJJG1lbnVbICRpXSA9ICRfOyANCgkJIygkbnVt LCAkdGVtcCkgPSBzcGxpdCggJ1wuJyk7DQoJIwkkcHJpbnRtZW51eyAkbnVt fSA9ICR0ZW1wOw0KCX0NCgllbHNlIA0KCXsNCgkJKCAkbnVtLCAkdGVtcCkg PSBzcGxpdCggJ2NtZD0nKTsNCgkJKCAkbnVtLCAkcG9vcikgPSBzcGxpdCgg JyAnLCAkbnVtKTsNCgkJJGV4ZWNtZW51eyRudW19ID0gJHRlbXA7DQoJfSAN CgkrKyRpOw0KIH0NCmNsb3NlICggTUVOVSk7DQoNCndoaWxlICggJHN0IG5l ICd4JykNCnsNCglwcmludCBAbWVudTsNCglwcmludCAiXG5cdFNlbGVjdCB5 b3VyIGNob2ljZSBbIG9yIHggZm9yIGJ5ZV06IjsNCglvcGVuKCBTVFJJS0Us ICIvZGV2L3R0eSIpOw0KCXJlYWQoIFNUUklLRSwgJHN0LCAxKTsNCgljbG9z ZSggU1RSSUtFKTsNCglpZiAoICRzdCBuZSAneCcpDQoJew0KIwkJcHJpbnQg JGV4ZWNtZW51eyAkc3R9Ow0KCQlzeXN0ZW0gJGV4ZWNtZW51eyRzdH07DQoJ CXN5c3RlbSAoICJsb2dvdXQiKTsNCgl9DQp9DQogDQo= --0-1832878440-877331180=:220-- -- end of forwarded message --

-- 

Kittle