很多年前,我记得一位程序员同意这个:
new Some::Class; # bad! (but why?)
Some::Class->new(); # good!
Run Code Online (Sandbox Code Playgroud)
可悲的是现在我不记得他/他的理由.:(两个表单都将正常工作,即使构造函数实际上不存在于Some :: Class模块中,而是从某个父节点继承.
这些形式都不与Some :: Class :: new()相同,它们不会将类的名称作为构造函数的第一个参数传递 - 因此这种形式总是不正确的.
即使两个表单是等价的,我发现Some :: Class-> new()更加清晰,因为它遵循在模块上调用方法的标准约定,而在perl中,'new'方法不是special - 一个构造函数可以被称为任何东西,new()可以做任何事情(当然我们通常期望它是一个构造函数).
我有一个XML文件,有一些格式.我希望以我想要的某种方式修改数据.我觉得XML :: Twig就是这样做的.
我想知道是否还有其他更好的选择?