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. >