Christian Couder <christian.cou...@gmail.com> writes:

> +sub packet_required_key_val_read {
> +     my ( $key ) = @_;
> +     my ( $res, $buf ) = packet_txt_read();
> +     unless ( $res == -1 or ( $buf =~ s/^$key=// and $buf ne '' ) ) {
> +             die "bad $key: '$buf'";
> +     }
> +     return ( $res, $buf );
> +}

The function calls itself "required", but it does not die when it
sees an unexpected EOF or an empty line.  Neither of these cases
gives it a key (nor val), but it is not treated as an error.

That is curious, isn't it?

By the way, is it just me who finds this "unless" even less
unerstandable than the original in packet_txt_read() you modeled
this one after?  The original depended on packet_bin_read() to die
on an unexpected EOF, so its "unless" made some sense (we know we
got some input, and it is an error for the input not to end with LF
unless it is an empty string).  Negating the condition and making it
"if" may make it easier to understand, perhaps.  I dunno.

Reply via email to