Grokbase
Topics Posts Groups | in
x
[ help ]

Re: lc(undef) is not undef: bug or feature?

View PostFlat  Thread  Threaded | < Prev - Next >
Alberto Simões Re: lc(undef) is not undef: bug or feature?
| +1 vote
[ Profile | Reply to group ] [ Flat  Thread  Threaded ]
Abigail wrote:
> On Thu, Jan 24, 2008 at 09:24:08PM +0000, Alberto Sim?es wrote:
>> Well, the subject says it all :)
>>
>> lc(undef) is the empty string.
>
> Of course. What would you expect? It's not different from 1 + undef being
> 1, and not undef. undef is not like NULL in SQL, where operation upon will
> return NULL. In Perl, undef is treated as the empty string if treated
> as a string, and as 0 if treated as a number. lc operates on strings,
> so lc(undef) will be the same as lc("").

OK

>> This might be good, this might be bad.
>
> What isn't good is that it doesn't warn.

It's true.

>> In any case, I think it should be documented.
>
> Where do we stop? Should we document any case where undef is treated
> as "" or 0?

Well, good point ;)

--
Alberto Simões - Departamento de Informática - Universidade do Minho
Campus de Gualtar - 4710-057 Braga - Portugal

Thread : lc(undef) is not undef: bug or feature?
1)
Alberto Simões Well, the subject says it all :) lc(undef) is the empty string. This might be good, this might be...
2)
Andy Armstrong I think the anomaly is that it doesn't cause a warning even with use warnings. Functions generally...
3)
Alberto Simões Just to explain how I found out: while(defined($line = lc(<>))) { But ok, I can put it on two lines...
4)
Abigail Of course. What would you expect? It's not different from 1 + undef being 1, and not undef. undef...
5)
Alberto Simões OK It's true. Well, good point ;)...
6)
Marvin Humphrey This is precisely the kind of situation where I'd hope that Perl would warn if I had warnings...
7)
Marvin Humphrey Oops. I read that backwards. Sorry for the noise. Marvin Humphrey Rectangular Research...
8)
Alberto Simões Use of uninitialized value on... ? Not sure if this was what you asked for. Cheers ambs
9)
Jonathan Rockway Interestingly, some similar cases also don't warn where they should: $ my $foo $ "$foo" Use of...
10)
Michael G Schwern I'll betcha $5 that \L is implemented using the same op as lc()... Yep, toke.c would seem to...
11)
Andy Armstrong Presumably "\L$smoo" and lc $smoo compile to the same thing.
12)
Rafael Garcia-Suarez I've added regression tests for it. I've applied patch for that. All tests pass. #33088. It's a...
spacer
View PostFlat  Thread  Threaded | < Prev - Next >