Hello.
I need some help in understanding why the first
my ($Count,$Saw)=$self->{_Portobj}->read(1);
is executed without any problem , however the second identical statement
inside the while loop fails with the error
Can't call method "read" on an undefined value at wt800.pm line 121
The idea behind this coding is to be able to use any object providing a
"write" and a "read" method inside my object. (i.e.
messageDevice::SerialPort)
I'm using Perl 2.7 on a OpenSuSE 13.2 system.
Any hint?
Tnx
Marco
sub get_answer {
my ($self,$Orig_ref) = @_;
print $self,"\n";
my $stat=$self->{_Portobj}->write("aaaa") or die "pippo";
my ($Count,$Saw)=$self->{_Portobj}->read(1);
my $Count=9999;
my $Saw="";
my @Resp;
print $self,"\n";
while (($Saw == chr(10)) or ($Count == 0)) {
print $self,"\n";
my ($Count,$Saw)=$self->{_PortObj}->read(1); # will read
1 char
push(@Resp,ord($Saw));
print ord $Saw,"\n";
}
}
_Portobj is initialized in myObject as:
sub new {
my $class = shift;
my $Tpobj = shift;
my $self = {
_Portobj => $Tpobj,
....
And the main () is
my $PortObj = new Device::SerialPort ($Portname, $Quiet)
or die "Can't open device $Portname: $!\n";
my $Object = new myObject($Portobj);
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
http://learn.perl.org/