如何破解已安装的perl6模块源代码?

时间:2019-05-10 20:24:00

标签: module edit perl6 zef

我希望能够查看和更改已安装(通过zef)的perl6模块的源代码。我该怎么办?

在我的系统上,模块源位于~/.perl6/sources/下,并且~/.perl6/dist/中还存在一些有关模块的元数据文件。

我也可以使用zef locate ...来显示模块的源路径,但是直接对源文件进行更改似乎没有任何效果(即,REPL中的use模块不会)不能显示我的更改。

我猜这是因为模块是预先编译的,而当我直接对模块源文件进行更改时,perl6不会接受我的更改并重新预编译模块...

更新:在~/.perl6/precomp/...下删除相应的预编译文件似乎可行,但我不确定如何以及是否将任何东西弄乱了。

1 个答案:

答案 0 :(得分:9)

  

我希望能够查看和更改已安装(通过zef)的perl6模块的源代码。我该怎么办?

请不要那样做。已安装的模块应该是不可变的,正如您所发现的:如果有可用的模块的预编译版本,它将检查原始源文件是否已更新。那是因为它不是必须的,因为它被认为是不可变的。

如果要测试已安装模块的更改,请下载tar文件/ git clone模块的发行版,在其中进行所需的更改,然后执行:

zef install . --force-install

而位于发行版的顶层目录中。这样将重新安装模块并为您处理预编译。