У меня есть следующий фрагмент кода Python:
import zlib
def object_read(repo, sha):
path = repo + "/objects/" + sha[0:2] + "/" + sha[2:]
with open (path, "rb") as f:
raw = zlib.decompress(f.read())
return len(raw)
print(object-read(".git", "1372c654fd9bd85617f0f8b949f1405b0bd71ee9"))
и один из его аналогов P6:
#!/usr/bin/env perl6
use Compress::Zlib;
sub object-read( $repo, $sha ) {
my $path = $repo ~ "/objects/" ~ $sha.substr(0, 2) ~ "/" ~
$sha.substr(2, *);
given slurp($path, :bin) -> $f {
my $raw = uncompress($f).decode('utf8-c8'); # Probable error here?!
return $raw.chars;
}
}
put object-read(".git", "1372c654fd9bd85617f0f8b949f1405b0bd71ee9")
Однако, когда я запускаю их, они возвращают мне результаты по одному:
$ python bin.py
75
$ perl6 bin.p6
74