任何人都可以确认它的弱或强类型性质吗?
解决方法
I see mixed information about Perl being weakly or strongly typed
这并不奇怪.关于C是强类型还是弱类型语言,还存在相互矛盾的信息.
>静态但弱类型语言的示例是C. [source]
> C是强类型的… [source]
>这在诸如C的弱类型语言中工作良好.[source]
> LISP引擎……本身通常用强类型语言编写,如C … [source]
>在诸如C的弱类型语言中…… [source]
>类型:强类型:(C,Algol,Fortran)[source]
Mark J Dominus compiled上面的列表,和discovered有八个不兼容的定义,它们意味着强类型.
>如果类型注释与变量名称相关联,而不是与值相关联,则强类型语言.如果类型附加到值,则它是弱类型的.
>如果语言包含类型约束违规的编译时检查,则强类型语言.如果检查延迟到运行时间,则它是弱类型的.
>如果语言包含类型约束违规的编译或运行时检查,则强类型语言.如果没有进行检查,则输入为弱类型.
>如果禁止不同类型之间的转换,则强类型语言.如果允许这样的转换,则它是弱类型的.
>如果必须明确指出不同类型之间的转换,则强类型语言.如果执行隐式转换,则它是弱类型的.
>如果没有语言级别的方法来禁用或规避类型系统,则强类型语言.如果有演员阵容或其他类型回避机制,则它是弱类型的.
>如果语言具有复杂类型的复杂细粒度类型系统,则会强类型化.如果它只有几种类型,或者只有标量类型,则它是弱类型的.
>如果语言的数据对象的类型是固定的并且在对象的生命周期内不会发生变化,则会强类型.如果数据的类型可以更改,则语言键入的类型很弱.
这表明“强类型”和“弱类型”是meaningless phrases.因此,这个答案的其余部分和所有其他答案实际上只是对你所要求的猜测.
Is Perl weakly or strongly typed?
它有强类型(标量,数组,散列等)和弱类型(字符串,浮点数,有符号整数,无符号整数,引用等).
这基于以上列表中的定义#1,#2,#4,#5和#6.
Wikipedia states that it also supports duck typing.
这是明确的.