I think the easiest way would be to add a method in the file
"runtime/parrot/library/Digest/MD5.pir" that gives the md5 checksum back
as a string. I can look at the source code and try to do this for you if
you want and add a method may be called "_md5_sum_get".

-- Gerd
 
Am Mittwoch, den 09.06.2010, 16:24 +0200 schrieb Cosimo Streppone:
> On Wed, 09 Jun 2010 16:00:42 +0200, Gerd Pokorra <g...@zimt.uni-siegen.de>  
> wrote:
> 
> > Here is a simple example that works.
> >
> > #!/usr/bin/perl6
> >
> > Q:PIR {
> >     load_bytecode 'Digest/MD5.pbc'
> >     .local pmc md5sum, md5print
> >     md5sum = get_root_global ['parrot'; 'Digest'], '_md5sum'
> >     $P0 = md5sum('foo')
> >     md5print = get_root_global ['parrot'; 'Digest'], '_md5_print'
> >     md5print($P0)
> > }
> 
> Cool! Works for me too!
> And also inside a subroutine.
> However, how do I return the md5sum back to perl6?
> 
> I blindly tried:
> 
>    sub mysub (Str $text) {
>      my $md5_sum = Q:PIR {
>          load_bytecode 'Digest/MD5.pbc'
>          .local pmc md5sum, md5print
>          md5sum = get_root_global ['parrot'; 'Digest'], '_md5sum'
>          $P0 = find_lex '$text'
>          %r = md5sum($P0)
>      };
>      return $md5_sum;
>    }
> 
>    say mysub('foo');
> 
> It doesn't panic, but it doesn't print anything either.
> 


Reply via email to