Perl和php的关系(总结)
一、总结
一句话总结:
1、PHP更适合编写网页程序,而Perl的用途范围要广得多,更像*nix系统下的万能胶水。php最主要就是做网站开发,用的人也非常多。
2、PHP的基本语法非常接近 Perl 的
3、PHP继承自一个老的工程,名叫 PHP/FI。PHP/FI 在 1995 年由 Rasmus Lerdorf 创建,最初只是一套简单的 Perl 脚本
二、php和perl比较
转自或参考:php和perl比较
https://zhidao.baidu.com/question/47618910.html
PHP更适合编写网页程序,而Perl的用途范围要广得多,更像*nix系统下的万能胶水。
由于CGI本身的运行方式,Perl在网页编程方面不像PHP那么自然高效。虽然有mod_perl,可是也有很多限制和需要注意的地方。
另外,由于Perl的哲学思想是同一件事,总有不止一种方法来解决,结果造成了大量难读难懂的程序。对于规模较大的系统来说,Perl编写的维护成本相对更高。
三、PHP 与 Perl 语言对比
转自或参考:PHP 与 Perl 语言对比
https://blog.csdn.net/kekefen01/article/details/88374907
php的历史:http://php.net/manual/zh/history.php.php
印象中php就是从perl发展来的
PHP 继承自一个老的工程,名叫 PHP/FI。PHP/FI 在 1995 年由 Rasmus Lerdorf 创建,最初只是一套简单的 Perl 脚本。
作为最受欢迎的服务器端语言,PHP 各版本已经被全球近8成的网站采用。而根据PHP 给出的各版本的生命周期,2019年1月1日开始,PHP 5 最后一个版本 5.6 将不再受支持,与此同时,PHP 7 第一个版本 PHP 7.0 也将在2018年 12月 3 日不再更新。而全球仍然有超过六成的网站采用这个两个版本,如不及时升级,将面临不可估量的安全风险。
https://cloud.tencent.com/developer/article/1360785
根据 W3Techs 最新的统计数据,在已知的语言中,有78.9%的网站采用了 PHP,全球所有的网站中使用 PHP 5 版本的网站占比高达 61.8%。再细分下来,使用PHP 5的网站中有 41.5% 采用的是 PHP 5.6,也就是说依然有很多网站仍然采用不再受支持的 PHP 版本。
偏题了。
php和perl的相同之处
脚本语言:Perl 和 PHP 二者都是脚本语言。这意味着他们不用提前独立执行生产原生可执行文件。
语法:PHP 的基本语法非常接近 Perl 的,并且二者都与 C 代码分享很多语法特性。像空格、语句由分号终止和花括号将多条语句组织成代码块。函数调用开始于函数名,紧随后面的是包围在圆括号中并由逗号分隔的实际参数。
符号变量:所有变量在PHP中看起来像Perl标量变量:一个名称在一个 符号 ($) 的前面。
没有声明变量:和 Perl 语言一样,PHP 变量在使用前你也不需要声明它的类型。
弱类型:和 Perl 语言一样,PHP 变量没有内在类型。你可以将数字或字符串存储在相同类型的变量里。
字符串和变量插值法:PHP 和 Perl 使用双引号字符串的次数比使用单引号的字符串的次数要多很多。
不同之处:
1.PHP 是 HTML 嵌入式语言:虽然可以使用 PHP 把任意任务从命令行运行,它通常需要连接到一个 Web 服务器并且用于产生 Web 页面。如果你习惯于用 Perl 编写 CGI 脚本,它和 PHP 的主要区别是,不再需要明确地打印大量的静态 HTML 或 heredoc 语句,而是可以简单地编写 HTML 本身之外的 PHP 代码块。
2.没有 @ 或者 % 变量:PHP 所有的变量始于一个美元符号($)。无论是标量类型或复合类型,任何数据类型的语言可以存储在这些变量中。
3.数组和散列:php有一个叫做数组的数据类型,像perl中的列表,包括数组和散列。
4.指定的函数参数:函数调用在 PHP 看起来很像在Perl 子程序。在 PHP 的函数定义中,而另一方面讲,通常需要某种正式的参数列表如 C 或 Java, 在 PERL 中并非如此。
5.在 Perl 函数中变量作用域:变量的默认范围是全局性的。这意味着顶级变量在子程序是可见的。通常,这导致全局函数的混杂使用。在 PHP 中,变量在函数定义的范围中默认是局部的。
6.php没有模块系统:在 PHP 中在正常代码文件和代码文件之间用作导入库没有真正区别。
7.php使用关键字 break 和 continue ,perl使用关键字 last 和 next
8.php使用elseif,perl使用elsif
9.更多种类的注释:除了 Perl-style(#) 单行注释,PHP 提供 C 风格的多行注释(/注释/)和 Java 风格的单行注释(/ /注释)。
10.正则表达式:PHP 没有内置的特定于正则表达式的语法,但大部分相同的功能在其 “Perl-compatible” 的正则表达式中。
我觉得第二条最关键,php中的@用于抑制错误。
其实perl use strict的话和上面还是有些不一样的。。