[rt.cpan.org #49619] Bareword "NORMAL_PRIORITY_CLASS" not allowed while "strict subs"

[email protected] ("Djibril Ousmanou via RT")
Newsgroups perl.libwin32
Message-ID <[email protected]>
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.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.