Clear questions and runnable code get the best and fastest answer |
|
PerlMonks |
Re^3: Most Annoying Error : Use of uninitialized value in concatenation (.) or string at C:\Perl\Oby graff (Chancellor) |
on Jul 15, 2005 at 19:22 UTC ( [id://475336]=note: print w/replies, xml ) | Need Help?? |
I don't see how that would work if the array is actually filled with undef's. The way that split works (with the two argument call as in the OP), an empty or undef input string will yield a list of zero elements, so "scalar @db_values" in that case will be zero. Likewise, if the input string is something like just "a" or "a,,,,,,", split will return a list of just one element (scalar @db_values will be "1"), and so on; trailing separators, if any, are simply truncated. It's true that if a line of input text contained a string like ",,,,,,g", split will return a list of 7 elements, the first six of which will be undef. But in that case, it might actually be "right" to create a database record in which the first six fields are null. It's also true that more checking of input values, before sending them on to a database, would be prudent, and more efficient ways of inserting database rows are both available and recommended (e.g. using the DB engine's native file import tools).
In Section
Seekers of Perl Wisdom
|
|