POSIX module
Hi Perlers, I've seen a lot of tutorial or example code dealing with the POSIX module that does something like this: use POSIX ':sys_wait_h'; What does the ':' mean/do in the above line? --Errin -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>
RE: POSIX module
Errin Larsen wrote: > Hi Perlers, > > I've seen a lot of tutorial or example code dealing with the POSIX > module that does something like this: > > use POSIX ':sys_wait_h'; > > What does the ':' mean/do in the above line? It's called a "tag" and is typically used to import a "basket" of symbols. See "perldoc Exporter", under the heading "Specialised Import Lists" For some reason this isn't documented in my copy of POSIX. But you can see the symbols exported by running: $ perl -MPOSIX -le 'print for @{$POSIX::EXPORT_TAGS{sys_wait_h}}' WEXITSTATUS WIFEXITED WIFSIGNALED WIFSTOPPED WNOHANG WSTOPSIG WTERMSIG WUNTRACED (your system may show different values) -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>
RE: POSIX module
> Hi Perlers, > > I've seen a lot of tutorial or example code dealing with the > POSIX module that does something like this: > > use POSIX ':sys_wait_h'; > > What does the ':' mean/do in the above line? > Besides googling for it, try reading: perldoc perlipc perldoc perldoc -f waitpid perldoc POSIX --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.770 / Virus Database: 517 - Release Date: 9/27/2004 -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>
Re: POSIX module
On Wed, 29 Sep 2004 11:32:58 -0400, Jim <[EMAIL PROTECTED]> wrote: > > > > > Hi Perlers, > > > > I've seen a lot of tutorial or example code dealing with the > > POSIX module that does something like this: > > > > use POSIX ':sys_wait_h'; > > > > What does the ':' mean/do in the above line? > > > > Besides googling for it, try reading: > perldoc perlipc > perldoc perldoc -f waitpid > perldoc POSIX > > --- > Outgoing mail is certified Virus Free. > Checked by AVG anti-virus system (http://www.grisoft.com). > Version: 6.0.770 / Virus Database: 517 - Release Date: 9/27/2004 > > Thank you Bob, and Jim I have read about this. My question is more about the 'use' code then about the POSIX module. It's just a really big module that has a lot of these tags in it, it seems. Here's my problem: 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? Is there a difference between the two implementations above that I'm not seeing? --Errin -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>
RE: POSIX module
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>
Re: POSIX module
On Wed, 29 Sep 2004 12:27:03 -0400, Bob Showalter <[EMAIL PROTECTED]> wrote: > 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. << SNIP >> > > 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. > Thanks Bob, that did it. I wonder why that is about Exporter? It seems rather counter-intuitive to me. --Errin -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>