in reply to Can you use setsockopt with the strict pragma?

Your code is equivalent to this:

socket(S, "AF_INET", "SOCK_DGRAM", $proto) or die "socket : $!"; setsockopt(S, "SOL_SOCKET", "SO_BROADCAST", 1) or die "setsockopt : $!

The code from the example you quote is this:

socket(S, AF_INET, SOCK_DGRAM, $proto) or die "socket : $!"; setsockopt(S, SOL_SOCKET, SO_BROADCAST, 1) or die "setsockopt : $!

There's one obvious difference between the two. Your code passes strings to the functions. The example code passes values which have been defined as numeric constants (in Socket.pm). If they aren't defined correctly in your Socket.pm (as your bareword error might indicate) then it's possible that your Perl installation might be broken.

So yes, you can use this code with "use strict" but you need to define your variables correctly.

my $Domain = AF_INET; my $Type = SOCK_DGRAM; my $Level = SOL_SOCKET; my $Optname = SO_BROADCAST;
I was also looking for the manual entry for setsockopt(2) (as alluded to on page 785 of the "Programming Perl" book but am unable to locate it on any of our servers (the powers that be probably thought these man pages took up too much room) is this documentation available on the net?

Why not ask Google?

--
<http://dave.org.uk>

"The first rule of Perl club is you do not talk about Perl club."
-- Chip Salzenberg

Replies are listed 'Best First'.
Re^2: Can you use setsockopt with the strict pragma? (())
by tye (Sage) on Oct 25, 2006 at 16:33 UTC

    I recommend using my $Domain = AF_INET(); because it isn't ambiguous and will tell you that you have a problem even if you didn't use strict;. It also gives a bit of a clearer indication of the problem.

    - tye        

Re^2: Can you use setsockopt with the strict pragma?
by Anonymous Monk on Oct 27, 2006 at 08:38 UTC
    Thanks - even without the documentation I should have figured that out but failed miserably! In my defence all I can say is that I didn't know what those parameters were for , hence my request for the documentation. (Yip I know that wouldn't bear much scrutiny never mind stand up in court - mea culpa!) I did try google first but could only find rather flimsy entries for Socket nothing for the Socket(2) referred to in the manual. Thanks again for your help.
    Cheers