首先,请原谅我生锈的Perl.我正在尝试修改Bugzilla的"whine.pl"以生成按严重性排序的错误列表.
所以它给了我一个哈希引用数组.每个哈希都包含一系列有关特定错误(id,受让人,严重性等)的信息.我想按严重程度对数组进行排序.最好的方法是什么?
我想出了几个可能性.一种是创建五个数组(每个严重级别一个),然后遍历数组并将哈希引用推送到适当的严重性级别数组.在此之后,我可以重新组装它们并用已排序的数组替换原始数组.
我的朋友提出的另一种方法是将严重性级别(存储为散列中的文本)分配给某些nubmers,然后cmp它们.也许是这样的?
sub getVal {
my $entry = $_[0];
%lookup = ( "critical" => 0, ... );
return $lookup(entry("bug_severity"));
}
@sorted = sort { getVal($a) <=> getVal($b) } @unsorted;
Run Code Online (Sandbox Code Playgroud) 我需要循环一个对象列表,比较它们是这样的:0对1,1对2,2对3等等(我正在使用pysvn来提取差异列表.)我结束了循环索引,但我一直想知道是否有某种方法可以做到更贴近惯用.这是Python; 我不应该以某种聪明的方式使用迭代器吗?简单地循环索引似乎很清楚,但我想知道是否有更具表现力或简洁的方法来做到这一点.
for revindex in xrange(len(dm_revisions) - 1):
summary = \
svn.diff_summarize(svn_path,
revision1=dm_revisions[revindex],
revision2 = dm_revisions[revindex+1])
Run Code Online (Sandbox Code Playgroud) 我是一个嵌入式软件公司的六人组建和发布团队的一员.我们还支持许多开发人员工具,例如Atlassian的Fisheye,Jira等,Perforce,Bugzilla,AnthillPro和一些自制工具(比如我的Django发行说明生成器).
大多数时候,我们的团队只为大型应用程序编写小插件(例如:在Anthill中自定义工作流程),长期实用程序脚本(打包QA版本)或Perforce触发器之类的东西(不要让人们检查特定分支,除非其更改说明包含错误编号;针对Active Directory而不是Perforce的内部密码进行身份验证).这是关于我们问题的规模,尽管我们有时会处理稍微大一些的问题.
我的老板,技术合理,已经要求我们对一种或两种语言进行标准化,以便我们可以更容易地相互替代.由于它们的普遍性和简单性,他主张bash脚本和Perl.我可以看出他的观点 - 我们主要做"胶水",那么为什么不使用"胶水"语言而不是为更大的项目设计的东西呢?由于我们使用的一些工具是基于Java的,我们确实需要使用有时会说JVM的东西.(这些项目阻力最小的路径是BeanShell和Groovy.)我对语言倡导感到非常惊讶,但我试图避免说"我们应该使用Python",因为我喜欢它而且Perl很糟糕.
相反,我正在努力想出一个很好的方法来定义我们的问题集:我们用脚本解决了什么问题?我们的团队可以从常用功能库中受益,还是我们的大多数项目更加孤立?期望我的同事学习有什么理由?哪些语言最容易开发和易于修改?
你们能否提出一些有用的方法来解决这个问题,既可以用于我自己的思考过程,也可以帮助我在同事之间进行一些头脑风暴?