in reply to 5.8.2 vs 5.8.8

That warning comes from the error handler.

sub _error { my $sock = shift; my $err = shift; { local($!); my $title = ref($sock).": "; $@ = join("", $_[0] =~ /^$title/ ? "" : $title, @_); <-- 83 close($sock) if(defined fileno($sock)); } $! = $err; return undef; }

It's not $title that's undef because that would cause the match operator to warn too. It's one of the arguments.

The warning is inconsequential. It's just the symptom of another bug, a bug that's already being reported as an error by Socket. _error is only called from the constructor, so that means the constructor is failing. What error is being returned when you try to create the socket?

Replies are listed 'Best First'.
Re^2: 5.8.2 vs 5.8.8
by 74redvette (Initiate) on Jan 06, 2011 at 17:31 UTC
    The diagnostics states: Use of uninitialized value in join or string at /usr/opt/perl5/lib/5.8.8/IO/Socket/INET.pm line 83 (#1) (W uninitialized) An undefined value was used as if it were already defined. It was interpreted as a "" or a 0, but maybe it was a mistake. To suppress this warning assign a defined value to your variables. To help you figure out what was undefined, perl tells you what operation you used the undefined value in. Note, however, that perl optimizes your program and the operation displayed in the warning may not necessarily appear literally in your program. For example, "that $foo" is usually optimized into "that " . $foo, and the warning will refer to the concatenation (.) operator, even though there is no . in your program. We are passing parameters that contain the server userid password ascii/binary remote directory, local directory and file name. Those all appear to be filled in correctly.

      I know what the warning means. I'm asking what error you're getting when you try to create the socket.

      Or how about this. What's the output of the following?

      perl -MCarp::Always your_script.pl
        Sorry for being vague. I'm not that familiar with the inner workings of perl. When I used the perl -MCarp with my script I'm getting the same error. I would attach the actual script if I knew how to do that.