[Melbourne-pm] When is an lvalue an lvalue?
Jacinta Richardson
jarich at perltraining.com.au
Mon Feb 20 18:23:38 PST 2012
On 20/02/12 18:24, Tim Connors wrote:
> $md5->add(substr($$dataRef, $seekPosn, 131072));
[...]
> Not really an lvalue, is it? I can sort of see why it does that - it
> doesn't know that the value is being passed to a function that isn't then
> going to modify its arguments, but ... counterintuitive. I wonder if
> there's another way substr could have handled the returning of null data
> that pleases legacy programs that don't follow perl best practices.
I don't know about substr, but another way you could fix your code is to handle
the "is my seek position out of bounds" yourself:
$md5->add( length($$dataRef) < $seekPosn ? undef : substr($$dataRef,
$seekPosn, 131072) );
but your solution is easier to read (assuming you're suppressing those errors
somewhere).
J
More information about the Melbourne-pm
mailing list