IO-Termios
view release on metacpan or search on metacpan
lib/IO/Termios.pm view on Meta::CPAN
C<IO::Termios::Attrs> object.
If the C<tcgetattr()> call fails, C<undef> is returned.
=cut
sub getattr
{
my $self = shift;
my $attrs = IO::Termios::Attrs->new;
$attrs->getattr( $self->fileno ) or return undef;
return $attrs;
}
=head2 setattr
$term->setattr( $attrs );
Makes a C<tcsetattr()> call on the underlying file handle, setting attributes
from the given C<IO::Termios::Attrs> object.
If the C<tcsetattr()> call fails, C<undef> is returned. Otherwise, a true
value is returned.
=cut
sub setattr
{
my $self = shift;
my ( $attrs ) = @_;
return $attrs->setattr( $self->fileno, TCSANOW );
}
=head2 set_mode
=head2 get_mode
$term->set_mode( $modestr );
$modestr = $term->get_mode;
Accessor for the derived "mode string", which is a comma-joined concatenation
of the baud rate, character size, parity mode, and stop size in a format such
as
19200,8,n,1
When setting the mode string, trailing components may be omitted meaning their
value will not be affected.
=cut
sub set_mode
{
my $self = shift;
my ( $modestr ) = @_;
my ( $baud, $csize, $parity, $stop ) = split m/,/, $modestr;
my $attrs = $self->getattr;
$attrs->setbaud ( $baud ) if defined $baud;
$attrs->setcsize ( $csize ) if defined $csize;
$attrs->setparity( $parity ) if defined $parity;
$attrs->setstop ( $stop ) if defined $stop;
$self->setattr( $attrs );
}
sub get_mode
{
my $self = shift;
my $attrs = $self->getattr;
return join ",",
$attrs->getibaud,
$attrs->getcsize,
$attrs->getparity,
$attrs->getstop;
}
=head2 tiocmget
=head2 tiocmset
$bits = $term->tiocmget;
$term->tiocmset( $bits );
Accessor for the modem line control bits. Takes or returns a bitmask of
values.
=cut
sub tiocmget
{
my $self = shift;
my $bitstr = pack "i!", 0;
ioctl( $self, TIOCMGET, $bitstr ) or
croak "Cannot ioctl(TIOCMGET) - $!";
return unpack "i!", $bitstr;
}
sub tiocmset
{
my $self = shift;
my ( $bits ) = @_;
my $bitstr = pack "i!", $bits;
ioctl( $self, TIOCMSET, $bitstr )
or croak "Cannot ioctl(TIOCMSET) - $!";
}
=head2 tiocmbic
=head2 tiocmbis
( run in 1.885 second using v1.01-cache-2.11-cpan-71847e10f99 )