in reply to Re: Win32::OLE objects
in thread Win32::OLE objects

yes sorry i had to retype it all because this machine that has access to the Internet is not on the Intranet where im coding :( i finally FTP the files over and here is an exact copy and paste of what i had previously was messed up (added the prints from a previous reply as well
package CLUILogger; use Win32::OLE; use Exporter; @ISA = qw(Exporter); @EXPORT=qw(LogInit LogIT); #Example Logline with all things described #LogIT($mylog, # '5(loglevel def 5)', # 'INFO(category info/error/etc)', # 'TESTING(function)', # 'TESTING2(blank or further action inside function)', # "This is my logged line"); sub LogInit{ my $appname = $_[0]; my $module = $_[1]; my $apploglevel = $_[2]; $NewLogObj = Win32::OLE->new('LOGGERHELPER.UILogHelp'); print "Ref is ", ref $NewLogObj, "\n"; print Win32::OLE->LastError(), "\n" unless ($NewLogObj); $NewLog0bj->{LogLevel} = $apploglevel; $NewLog0bj->{AppName} = $appname; $NewLog0bj->{Module} = $module; Win32::MsgBox('my log is "'.$NewLogObj.'"'); return $NewLogObj; } sub LogIT { my $LogObj = $_[0]; my $loglevel = $_[1]; my $category = $_[2]; my $activity = $_[3]; my $subactivity = $_[4]; my $logstring = $_[5]; #$LogObj = bless($LogObj, Win32::OLE); if ($LogObj->{LogLevel} < $loglevel) { $LogObj->LogMessage($LogObj->{AppName},$category,$activity,$subactivi +ty,$logstring); } } 1;


and here is the code that is calling it from the perl file
$mylog = LogInit('LSEUI', 'UI', $thisloglevel); LogIT($mylog, '1', 'INFO', 'STARTUP', '', 'LSEUI Starting...User="'.$usercheck . '"' );

Replies are listed 'Best First'.
Re^3: Win32::OLE objects
by crashtest (Curate) on May 06, 2005 at 21:05 UTC
    I tried running your updated code (with a different OLE object) under strict, and it immediately exposed a subtle typo you made. I assume you copy-and-pasted this from your "working" version, so this probably won't help you fix the unblessed reference, but it might have something to do with it after all.

    Depending on your font, you might not see it, but in line 25 and 33 of your module you refer to a variable named, logically enough, $NewLogObj. However, in lines 28, 29 and 30 you call it $NewLog0bj - thats $NewLog0bj, with a zero as the 7th character, not an "Oh".

    Are you posting the exact code that caused the error? I ask because the offending line number (25) in your error message has nothing to do with what's going on in the code you posted. And as far as I can see (and run), there are no unblessed references in what you're showing on PerlMonks.

    You really should run the complete code you have on your machine under strict and warnings. I would bet money that it'll expose the mistake.