Hello Marc,

Please try to send your messages in plain text format, it's easier for 
several members if the list.

It's difficult to detect an error with such a little sample of your code. 
The first thing I can see, is that you are declaring a prototype that you 
don't really need or use. Use your subroutine like this (without parenthesis 
in the sub name):

sub sLogData {
    my $string = shift; # collect your first arg
    print $string;
    if ($flag_log) {
        print LOGFILE $string;
    }
    return 0;
}

Now, you are not specifying the name of your script nor the whole error 
message. I don't know how your script is being called, but the error message 
should have at the end information on where the function was called (script 
name and line) and that should give you some clue. Maybe it's being called 
outside scope (inside a different package) or by some other script, but then 
again, you didn't provide too much detail to analize.

Also, always use the followung two lines at the beginning of your scripts:

use strict;
use warnings;

Those two lines can help you resolve a lot of issues faster.

HTH

Paco Zarabozo





-------------------------------------------------
From: Labelle, Marc S
Sent: Monday, June 30, 2008 1:25 PM
To: ActivePerl@listserv.ActiveState.com
Subject: getting "undefined subroutine &main::sLogData" after 
callingsuccessfully multiple times in script.


Hello all,
            I'm a bit confounded by the error I'm getting.
I've got a small subroutine (listed below) that I call when I need to post 
data to both the console and a logfile.
It is using two globals and one variable passed to it (globals are a flag to 
enable/disable the logfile, and the filehandle).
It's a dead simple subroutine and I don't know what I'm doing wrong.
Basically the script interfaces to some National Instruments hardware (which 
is working fine) and iterates over several options (also working fine).  As 
it goes it logs results, data, etc.
Periodically and *not* at the same point in the program each time the script 
will fail with an "undefined subroutine &main::sLogData", this after it's 
successfully called it 20 or 30 times before.

Any thoughts?
Cheers,
-Marc


sub sLogData(@)
{
            my $string=$_[0];
            print "$string";
            if ($flag_log) {print LOGFILE "$string"; }
            return(0);
}





_______________________________________________
ActivePerl mailing list
ActivePerl@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs 

_______________________________________________
ActivePerl mailing list
ActivePerl@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to