Perl Cd Bookshelf [Electronic resources] نسخه متنی

اینجــــا یک کتابخانه دیجیتالی است

با بیش از 100000 منبع الکترونیکی رایگان به زبان فارسی ، عربی و انگلیسی

Perl Cd Bookshelf [Electronic resources] - نسخه متنی

| نمايش فراداده ، افزودن یک نقد و بررسی
افزودن به کتابخانه شخصی
ارسال به دوستان
جستجو در متن کتاب
بیشتر
تنظیمات قلم

فونت

اندازه قلم

+ - پیش فرض

حالت نمایش

روز نیمروز شب
جستجو در لغت نامه
بیشتر
لیست موضوعات
توضیحات
افزودن یادداشت جدید



15.7. Ringing the Terminal Bell


15.7.1. Problem




You want to sound an alarm on
the user's terminal.

15.7.2. Solution


Print the "\a" character to sound a
bell:

print "\aWake up!\n";

Or use the "vb" terminal capability to show a
visual bell:

use Term::Cap;
$OSPEED = 9600;
eval {
require POSIX;
my $termios = POSIX::Termios->new( );
$termios->getattr;
$OSPEED = $termios->getospeed;
};
$terminal = Term::Cap->Tgetent({OSPEED=>$OSPEED});
$vb = ";
eval {
$terminal->Trequire("vb");
$vb = $terminal->Tputs('vb', 1);
};
print $vb; # ring visual bell

15.7.3. Discussion


The "\a" escape is the same as
"\cG", "\007", and
"\x07". They all correspond to the ASCII BEL
character and cause an irritating ding. In a crowded terminal room at
the end of the semester, this beeping caused by dozens of
vi novices all trying to get out of insert mode
at once can be maddening. The visual bell is a workaround to avoid
irritation. Based upon the polite principle that terminals should be
seen and not heard (at least, not in crowded rooms), some terminals
let you briefly reverse the foreground and background colors to give
a flash of light instead of an audible ring.

Not every
terminal supports the visual bell, which is why we
eval the code that finds it. If the terminal
doesn't support it, Trequire will
die without having changed the value of
$vb from ". If the terminal
does support it, the value of $vb will be set to
the character sequence to flash the bell.

There's a better approach to the bell issue in graphical terminal
systems like xterm. Many of these let you enable
the visual bell from the enclosing application itself, allowing all
programs that blindly output a chr(7) to become
less noisy.

15.7.4. See Also


The section on "String Literals" in Chapter 2 of
Programming Perl or the section on "Quote and
Quote-like Operators" in perlop(1); the
documentation for the standard Term::Cap module



15.6. Reading Single Characters from the Keyboard15.8. Using POSIX termios




Copyright © 2003 O'Reilly & Associates. All rights reserved.

/ 875