On 10/18/2016 04:53 PM, James E Keenan wrote: > At this point I feel compelled to ask: > > Why? > > Why do you want to design a library with so many exportable subroutines > and (worse!) constants? > > Now, I concede that the statements above are merely background for your > questions about circular dependencies. So my questions run the risk of > sending discussion off in a different direction. And we don't yet have > your code to look at. > > But, on the basis of the experiences of the Perl 5 Porters in > maintaining POSIX.pm -- which suffers from these problems, see > http://search.cpan.org/~rjbs/perl-5.24.0/ext/POSIX/lib/POSIX.pod#CAVEATS > -- I would be reluctant to use any library with a large number of > exportable symbols and consequent risk of namespace pollution.
Thank you for your reply. If you can recommend a module included in base Perl that includes the ASCII character set in the following form, I would be happy to eliminate 128 of my constants: use constant NUL => chr 0; use constant SOH => chr 1; use constant STX => chr 2; ... use constant DEL => chr 127; Same for these: use constant EMPTY_STRING => ''; use constant FALSE => ''; use constant NAMESEP => '::'; use constant TRUE => 1; use constant UNDEF => undef; But you asked, "Why?": 2016-10-18 18:20:59 dpchrist@t7400 ~/sandbox/perl $ cat constants-as-coderefs.pl #!/usr/bin/perl use strict; use warnings; use constant FOO => 'foo'; sub takes_coderef { print $_[0]->(), "\n" } my $rc = \&FOO; takes_coderef($rc); 2016-10-18 18:21:02 dpchrist@t7400 ~/sandbox/perl $ perl constants-as-coderefs.pl foo I'm experimenting with ideas from HOP [1], and coderefs are of primary importance. David [1] http://hop.perl.plover.com/