lib/Quancom/Result.pm
changeset 15 2d41fac09084
parent 13 d6f681329542
child 17 ecc10b50b7a6
equal deleted inserted replaced
14:7ccc679ac5db 15:2d41fac09084
    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__