我试图渲染一个文件使用一个实用程序模板在梅森模板(使用一个古老的CMS Bricolage)。这可能并不重要。
$m->scomp应该最终得到一个很好的json文件,然后我手动创建,打印并关闭:
my $article_body = $m->scomp('/util/render_apple_story.mc');
open my $fh, '>', $articlerootjson;
print {$fh} $article_body . "\n";
close $fh;
然后,我尝试执行一个进程(用Python)检测到该文件并将其发送给Apple
$output = `PYTHONIOENCODING=UTF-8 /var/home/tyee/PyAppleAPI/create_article.py https://news-api.apple.com $channel $key $secret $articleroot`;
print "return is $output \n";
但每次我第一次执行模板时,它都无法创建文件。
然而,它在反引号中运行命令,返回的结果是没有json文件。
因此,perl程序在$m->scomp或file open/close命令仍在运行时继续执行,然后在文件创建之前退出。
第二次,如果我重新呈现模板(重新运行perl),文件将被创建。
有什么方法可以运行回勾部分,只有当$m->scomp和文件打开+关闭已经完成?
1条答案
按热度按时间z31licg01#
结果发现,故事uri所在的目录结构还不存在。我尝试了各种强制预览输出通道都无济于事。
因此,在查看了创建路径的整个目录结构的快捷方式后,我不得不执行以下不优雅的操作:
然后它让我打开文件。用错误报告打开文件会对我有帮助,我不知何故不认为这是失败的步骤,所以我忽略了它。