use strict;
use XML::Simple;
# $ARGV[0] = <revision_number>
# $ARGV[1] = <https://svn_path>
# $ARGV[2] = <branch>
my $command = `svn log -v --xml -rHEAD:$ARGV[0] $ARGV[1]/$ARGV[2]/some_dir/`;
eval { $ref = XMLin($command, ForceArray=> qr/^(logentry|path)$/); };
die "Cannot read xml output of svn log -v --xml -rHEAD:$ARGV[0]: $@" if($@);
遇到了这个perl代码段。可以看出它正在执行svn
log命令。
XMLin
是一种可以读取xml内容的东西,我相信(使用xml::Simple)
用python编写等效代码。查看此语法后开始阅读perl
。发现理解它有困难。什么是ForceArray
和qr/^(logentry|path)$/
如何用python(eval
)编写相同的代码?
是否有任何工具/脚本可用于将perl
翻译为python
相当于
Python中的直接等价物是
但它充当一个关键字(命名)参数,因此更准确的Python等价物应该是
此特定参数影响
XMLin
返回的结构您不应该在Perl中使用XML::Simple,更不应该在Python中重新创建它。使用适当的解析器并相应地调整代码
与
eval BLOCK
等价的Python是try
语句类似于
相关问题 更多 >
编程相关推荐