While <node>tye</node> makes some valid points, I don't think that's what the problem is here. I believe deep down in the DBD::Sybase (that's what driver you're using correct?) there is some little magic that is marking the return'ed ref as read only (disclaimer - I'm not an internals expert).
If we try some of the other fetch methods, we see some interesting things:
my $data; do { while ($data = $res->fetchrow_arrayref()) { if ($res->{syb_result_type} == CS_ROW_RESULT) { if (defined $data) { @$data = map { defined($_) ? $_ : "" } @$data; } } } }
same problem. However:
my @data; do { while (@data = $res->fetchrow_array()) { if ($res->{syb_result_type} == CS_ROW_RESULT) { if (@data) { @data = map { defined($_) ? $_ : "" } @data; } } } }
works. The funny thing is by stepping through the map statement in the debugger, the assignments to $_ are fine, it's just the final assigment to @$data that is barfing. Any Inline or XS writers out there care to comment?
-derby
In reply to Re: Modification of a read-only
by derby
in thread Modification of a read-only
by Jonathan
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |