Background: I trying to write a perl wrapper script for the sophie
<http://www.vanja.com/tools/sophie/> virus scanning tool. For those
unfamilier with sophie, it monitors a socket which programs can send
pathnames for scanning. Upon virus detection, it returns the virus
name; if no virus is found, it returns 0.

Problem: I'm using the IO::Socket::UNIX package (1.20) to access the
socket. When I run the script, it fails on the connection line with
the following error:
Can't use string ("IO::Socket::UNIX") as a symbol ref while "strict
refs" in use at /usr/perl5/5.00503/sun4-solaris/IO/Socket.pm line 102.

I imagine I'm doing something wrong, but because I'm still a beginner,
I don't know what it would be.  If anyone can spot my error, and let
me know, I'd be much obliged!

I'd also be more than willing to answer any questions about things
I've overlooked or not mentioned.

-cary mathews

System information:
shell> perl -V
Summary of my perl5 (5.0 patchlevel 5 subversion 3) configuration:
  Platform:
    osname=solaris, osvers=2.8, archname=sun4-solaris
    uname='sunos localhost 5.8 sun4u sparc sunw,ultra-1 '
    hint=previous, useposix=true, d_sigaction=define
    usethreads=undef useperlio=undef d_sfio=undef
  Compiler:
    cc='gcc', optimize='-O3', gccversion=
    cppflags=''
    ccflags =''
    stdchar='char', d_stdstdio=define, usevfork=false
    intsize=4, longsize=4, ptrsize=4, doublesize=8
    d_longlong=define, longlongsize=8, d_longdbl=define,
longdblsize=16
    alignbytes=8, usemymalloc=n, prototype=define
  Linker and Libraries:
    ld='gcc', ldflags =''
    libpth=/lib /usr/lib /usr/ccs/lib /usr/local/gcc/lib
    libs=-lsocket -lnsl -ldl -lm -lc -lcrypt
    libc=/lib/libc.so, so=so, useshrplib=true, libperl=libperl.so
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-R
/usr/perl5/5.00 503/sun4-solaris/CORE'
    cccdlflags='-fPIC', lddlflags='-G'


Characteristics of this binary (from libperl):
  Built under solaris
  Compiled at Dec 22 1999 00:00:57
  @INC:
    /usr/perl5/5.00503/sun4-solaris
    /usr/perl5/5.00503
    /usr/perl5/site_perl/5.005/sun4-solaris
    /usr/perl5/site_perl/5.005
    .

Basic program code to produce the error:
#-- cut here
#!/usr/bin/perl -w

use strict;
use IO::Socket::UNIX;

$| = 1;

my ($sock_path, $sophie_socket);

$sock_path = "/u01/app/local/var/sophie";

$sophie_socket = \
IO::Socket::UNIX->connect($sock_path);

die "could not bind to socket at $sock_path\n" unless
defined($sophie_socket);
#-- cut here

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to