in reply to Re^9: Use of uninitialized value in substr
in thread Use of uninitialized value in substr

In your mind, undef is some magical value. In mine, it's a function like any other.

Then my mind is right, and yours is wrong!

#! perl -slw use 5.010; use strict; use Inline C => Config => BUILD_NOISY => 1; use Inline C => <<'END_C', NAME => 'uCmp', CLEAN_AFTER_BUILD => 0; bool uCmp( SV* t ) { return (bool)( t == (&PL_sv_undef) ); } END_C print 'explicit undef: ', uCmp( undef ) ? 1 : 0; my $s; print 'uninitalised lexical: ', uCmp( $s ) ? 1 : 0; my @a; print 'uninitalised array element: ', uCmp( $a[ 5 ] ) ? 1 : 0; my %h; print 'uninitalised hash value: ', uCmp( $h{fred} ) ? 1 : 0; our $g; print 'uninitalised global: ', uCmp( $g ) ? 1 : 0; print 'Other unexplicit undef values: ', uCmp( `unknown_command` ) ? 1 + : 0; __END__ C:\test>uCmp explicit undef: 1 uninitalised lexical: 0 uninitalised array element: 0 uninitalised hash value: 0 uninitalised global: 0 'unknown_command' is not recognized as an internal or external command +, operable program or batch file. Usage: main::uCmp(t) at C:\test\uCmp.pl line 28.

Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
RIP an inspiration; A true Folk's Guy

Replies are listed 'Best First'.
Re^11: Use of uninitialized value in substr
by ikegami (Patriarch) on May 03, 2010 at 19:58 UTC
    I'm aware of PL_sv_undef and how it's used. It's besides the point. In Perl land, undef is undef is undef. There's only one case where I know where that doesn't hold (in open), and I believe that was a mistake (or a backwards compatibility solution).
      I'm aware of PL_sv_undef and how it's used.e

      Really? Then I'm surprised it took you this long to get with the program and discuss the actual idea, rather than blundering around in willful misinterpretation land.

      In Perl land, undef is undef is undef.... and I believe that was a mistake

      And you speak for all "Perl land" do you?

      And I believe differently. So you'll excuse me if I pay little mind to your "I don't know why you're asking this question".


      Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
      "Science is about questioning the status quo. Questioning authority".
      In the absence of evidence, opinion is indistinguishable from prejudice.

        In Perl land, undef is undef is undef....

        And I believe differently.

        I've been looking for another example, and I can't find one. Do you know of another case where explicit undef or PL_sv_undef is distinguished from undefined?

        If there is an example of undef not being undef other than the previously mentioned open hack, it's well hidden. If you believe differently, there's gotta be some obvious example I'm missing.

        (Note that I only spoke about the current state of Perl land.)

        it took you this long to get with the program and discuss the actual idea

        "Long"? You mean my second post, where I said I didn't like the idea?

        And you speak for all "Perl land" do you?

        I spoke about all of the Perl code I've seen, which is quite substantial. It goes to show it's not a very Perlish concept.

        Update: Added link.