develooper Front page | perl.perl6.language | Postings from May 2005

Re: Syntax of using Perl5 modules?

Thread Previous
From:
Darren Duncan
Date:
May 24, 2005 23:56
Subject:
Re: Syntax of using Perl5 modules?
Message ID:
p06210200beb9cf0f060b@[192.168.1.101]
At 12:06 PM +0800 5/25/05, Autrijus Tang wrote:
>So, this now works in Pugs with (with a "env PUGS_EMBED=perl5" build):
>     use Digest--perl5;
>     my $cxt = Digest.SHA1;
>     $cxt.add('Pugs!');
>     # This prints: 66db83c4c3953949a30563141f08a848c4202f7f
>     say $cxt.hexdigest;
>This includes the "Digest.pm" from Perl 5.  DBI.pm, CGI.pm etc will
>also work.
>Now my question is, is my choice of using the "perl5" namespace indicator a
>sane way to handle this?  Is it okay for Perl 6 to fallback to using Perl 5
>automatically?  Or should I use something else than "use" entirely?
>Thanks,
>/Autrijus/

I would say that one should always have to specify the Perl 5 
namespace in some way, so that there are no surprises as to whether 
something you invoke is implemented in Perl 6 or Perl 5, and so that 
it is possible to be actively using a Perl 5 and Perl 6 module with 
the same short name at the same time.

Do not fallback to it automatically.

Rather, if someone wanted to not fill their Perl 6 code with 
"--perl5", they should use the Perl 6 feature that lets you create 
lexical aliases to things; they can explicitly declare a Perl 6 name 
for what they want to use, which just so happens to be an alias for 
the Perl 5 implementation.

I won't suggest exact syntax here, though yours looks fine for now.

Separately, since this together with the earlier 'inline' feature for 
Perl 5 sort of completes a circle of Pugs->Perl5->Pugs or 
Perl5->Pugs->Perl5, I see a further improvement that could possibly 
be made, if it isn't already.

That is, when you have three-somes like that, let the two endmost 
Pugs, or endmost Perl5, be the exact same interpreter in memory.  So 
that, eg, if you set a global var in the caller-most Perl5, it will 
be visible in the called-most Perl5, or vice-versa.

On the other hand, I don't know whether or not that would be better 
in practice than keeping separate interpreters for calling and called.

-- Darren Duncan

Thread Previous


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About