Errin Larsen wrote:
> When I use the following in my code, it runs and
> works fine: 
> 
>   use POSIX 'setsid';
>   use POSIX 'errno_h';
>   use POSIX ':sys_wait_h';
> 
> However, when I try to combine those into one line:
> 
>   use POSIX qw/setsid errno_h :sys_wait_h/;
> 
> Then I get the following error:
> 
> # ismon.pl
> ":errno_h" is not exported by the POSIX module at
> /usr/perl5/5.6.1/lib/sun4-solaris-64int/POSIX.pm line 19
> 
> ":sys_wait_h" is not exported by the POSIX module at
> /usr/perl5/5.6.1/lib/sun4-solaris-64int/POSIX.pm line 19
> 
> Can't continue after import errors at
> /usr/perl5/5.6.1/lib/sun4-solaris-64int/POSIX.pm line 19
> BEGIN failed--compilation aborted at ./ismon.pl line 3.
> 
> First of all, I'm not putting a ':' in front of 'errno_h' in my code,
> but Perl seems to assume it's there ... why?

POSIX fixes up foo_h as :foo_h for some reason

> Is there a difference
> between the two implementations above that I'm not seeing?

Exporter only does the special :tag processing if the *first* entry in the
import list starts with one of the following characters

   : ! /

So move :sys_wait_h to the front and it will work.

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to