equal
deleted
inserted
replaced
25 my $self = bless {} => $class; |
25 my $self = bless {} => $class; |
26 my $r = shift; |
26 my $r = shift; |
27 $r =~ s/\s*$//; # should match any \r or \n too |
27 $r =~ s/\s*$//; # should match any \r or \n too |
28 |
28 |
29 # decode the status |
29 # decode the status |
30 if (($self->{error_code}) = $r =~ /^E(.)/) { |
30 if ((my $e) = $r =~ /^E(.)/) { |
|
31 $self->{error_code} = unpack("C", $e); |
31 $self->{ok} = 0; |
32 $self->{ok} = 0; |
32 } |
33 } |
33 elsif (my ($jobid, $data, $csum) = $r =~ /^[DO](..)(.*)(..)$/) { |
34 elsif (my ($jobid, $data, $csum) = $r =~ /^[DO](..)(.*)(..)$/) { |
34 $self->{ok} = 1; |
35 $self->{ok} = 1; |
35 $self->{data} = defined $data ? $data : ""; |
36 $self->{data} = defined $data ? $data : ""; |
60 sub error_message { |
61 sub error_message { |
61 my $self = shift; |
62 my $self = shift; |
62 |
63 |
63 return undef if !@_ and $self->{ok}; |
64 return undef if !@_ and $self->{ok}; |
64 |
65 |
65 return ("checksum error", "character error", "invalid command", |
66 return +("checksum error", "character error", "invalid command", |
66 "invalid width")[ @_ ? $_[0] : $self->{error_code} ]; |
67 "invalid width")[ defined $_[0] ? $_[0] : $self->{error_code} ]; |
67 } |
68 } |
68 |
69 |
69 1; |
70 1; |
70 |
71 |
71 __END__ |
72 __END__ |