Mon Sep 14 05:36:01 2009: Request 49619 was acted upon.
Transaction: Correspondence added by DJIBEL
Queue: Win32-Process
Subject: Bareword "NORMAL_PRIORITY_CLASS" not allowed while "strict subs"
Broken in: 0.14
Severity: (no value)
Owner: Nobody
Requestors: [email protected]
Status: open
Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=49619 >
Le Sam. Sep. 12 17:16:47 2009, [email protected] a écrit :
> Jan Dubois via RT wrote:
> >
> > This has nothing to do with "strict subs". When you "use
> > Win32::Process" then you are importing several symbols at compile time
> > into your own namespace. If you simply "require Win32::Process" at
> > runtime, then those symbols have not been imported and must be used
> > fully qualified:
> >
> > Win32::Process::NORMAL_PRIORITY_CLASS()
> >
> > instead of
> >
> > NORMAL_PRIORITY_CLASS
> >
> > This is not a bug in the module; this is just how Perl works.
>
> Actually the trick is the () on the end. I kept trying to do:
>
> require Win32::Process;
> import Win32::Process qw(NORMAL_PRIORITY_CLASS);
>
> my $flags = NORMAL_PRIORITY_CLASS;
>
> But all I needed to do was add the ():
>
> my $flags = NORMAL_PRIORITY_CLASS();
It is a good idea. I will use this method.
require Win32::Process;
import Win32::Process qw(NORMAL_PRIORITY_CLASS);
my $flags = NORMAL_PRIORITY_CLASS();
# Create and execute a process to start
my $ProcessObj;
Win32::Process::Create( $ProcessObj, $executable, $argument, 0,
$flags, '.' )
or die Win32::FormatMessage( Win32::GetLastError() );
Thank you.