- 论坛徽章:
- 0
|
每次在stdin收到回车时,调用&check将@buf中内容拼接起来判断是否为'abc'
问题是:由于上下翻页、插入位置移动等操作导致$buf中的内容很难理解
感觉Term::ReadLine的readline的处理方式应该也是累积$buf,最后回车时判断并返回$cmd,不过不知道如何下手。。。
sub pty_ready {
my ($pty) = @_;
my $buf = "";
my $rc = $pty->sysread($buf, BUFFER_LENGTH);
if (length($input)>0) {
if ($input ne '\n') {
push(@buf,$buf);
} else {
my $check_cmd=&check(\@buf);
undef @buf;
if ($check eq 'abc') {
print "Got Cmd: abc\n";
}
}
}
print LOG $buf;
if (!defined($rc) || $rc == 0) {
return 0;
}
syswrite(STDOUT, $buf, length($buf));
return 1;
}
sub check {
my $c=shift;
my @buf=@$c;
my $cmd;
foreach my $p (@buf) {
#?????
}
return $cmd;
} |
|