当前位置: 首页 > 科技观察

Perl语言基础入门

时间:2023-03-13 22:50:02 科技观察

下载此编程备忘单并开始学习Perl的强大功能。Perl于1988年初发布,是一种后现代编程语言,通常被认为是一种脚本语言,但它也能够进行面向对象的编程。它是一种成熟的语言,拥有数以万计的库、GUI框架,它有一个名为Raku(即Perl6)的衍生产品,以及一个活跃而热情的社区。它的开发人员以其灵活性而自豪。根据其创建者LarryWall的说法,Perl不会将任何特定的编程风格强加给用户,并且有不止一种方法可以完成大多数事情。Perl非常健壮,它曾经被广泛使用,使它成为新程序员尝试的一种很棒的语言。下载PerlCheatSheetPerlBasics在Linux和macOS上,您已经安装了Perl。在Windows上,从Perl网站下载并安装它。Perl表达式Perl源代码的基本单元是表达式,它是任何返回值的东西。例如1是表达式,返回值1。表达式2返回值2,a返回字母a。表达式可能更复杂。表达式$a+$b包含变量(数据占位符)和加号(+),这是一个数学运算符。Perl语句Perl语句由表达式组成。每个语句以分号(;)结尾。例如:$c=$a+$b;要尝试运行您自己的Perl语句,请打开终端并输入:$perl-e'print("HelloPerl\n");'Perl语句块Perl语句块可以用花括号({})将它们分组。块是一种有用的组织工具,但它们也为您可能只需要在程序的一小部分中使用的数据提供范围。Python用空格定义范围,LISP用圆括号定义范围,C和Java用大括号定义范围。变量变量是数据的占位符。人类每天都在不知不觉中使用变量。例如,“it”这个词可以指代任何名词,所以我们用它作为一个方便的占位符。“Findmyphoneandgivemeit”的真正意思是“找到我的手机并给我我的手机”。对于计算机来说,变量不是方便的,而是必需的。变量是计算机识别和跟踪数据的方式。在Perl中,您通过声明变量名及其内容来创建变量。在Perl中,变量名总是以美元符号($)开头。这些简单的语句创建一个包含字符串“Hello”和“Perl”的变量$var,然后将该变量的内容打印到终端:$perl-e'$var="helloperl";打印(“$var\n”);'控制流程大多数程序需要做出决定,而这些选择是由条件语句和循环定义和控制的。if语句是最直观的语句。Perl可以测试特定条件,并基于该条件Perl决定如何继续执行该程序。它的语法类似于C或Java:my$var=1;if($var==1){print("HelloPerl\n");}elsif($var==0){print("1notfound");}else{print("Good-bye");}Perl也有一个简短的if语句:$var=1;print("HelloPerl\n")if($var==1);函数和子例程尽可能多地重用代码是一种很好的编程习惯。这种做法减少了错误(或将错误合并到一个代码块中,因此您只需修复一次),使您的程序更易于维护,简化您的程序逻辑,并使其他开发人员更容易理解它。在Perl中,您可以创建一个接受输入(存储在特殊数组变量@_中)并可能返回输出的子例程。您可以使用关键字subroutine创建子例程,后跟您选择的子例程名称,然后是代码块:#!/usr/bin/envperlusestrict;usewarnings;subsum{my$total=0;对于我的$i(@_){$total+=$i;}return($total);}print&sum(1,2),"\n";当然,Perl有很多子程序,你不必自己创建。有些内置在Perl中,而社区图书馆则提供其他的。Perl中的脚本Perl可以编译或用作解释性脚本语言。后者是最容易入手的选项,尤其是在您已经熟悉Python或shell脚本的情况下。这是一个用Perl编写的简单掷骰子脚本。通读一遍,看看你能不能跟上。#!/usr/bin/envperluse警告;使用严格;使用utf8;binmodeSTDOUT,“:编码(UTF-8)”;binmodeSTDERR,“:编码(UTF-8)”;我的$sides=shiftordie"\n您必须提供骰子的面数。\n";subroller{my($s)=@_;我的$roll=int(rand($s));打印$roll+1,"\n";}roller($sides);第一行告诉您的POSIX终端使用什么可执行文件来运行脚本。接下来的五行是模板样式的包含和设置。usewarnings设置告诉Perl检查错误并在终端上针对它发现的问题发出警告。usestrict设置告诉Perl在发现错误时不要运行脚本。这两个设置都可以帮助您在代码中发现错误,以免它们引起问题,因此在脚本中启用它们是很常见的。脚本的主要部分从分析从终端启动时提供给脚本的参数开始。在这种情况下,预期参数是虚拟骰子所需的面数。Perl将其视为堆栈并使用shift函数将其分配给变量$sides。die函数在没有提供参数时被触发。使用Sub关键字创建的Roller子例程(或函数)使用Perl的rand函数生成一个伪随机数,最多为参数个数。这意味着在这个程序中,一个6面的骰子不能掷出6,但可以掷出0。这对计算机和程序员来说很好,但对大多数用户来说,这是令人困惑的,所以它可以被认为是一个错误。为了在这个bug成为问题之前修复它,下一行将随机数加1并将结果打印为掷骰子的结果。当引用传递给子例程的参数时,您指的是特殊变量@_,它是一个数组,包含函数调用时括在括号中的所有内容。但是,当从数组中提取值时,数据会转换为标量(示例中的$s变量)。子例程在被调用之前不会运行,因此脚本的最后一行调用自定义滚轮函数,将命令的参数作为参数传递给函数。将文件另存为dice.pl并将其标记为可执行文件:$chmod+xdice.pl最后,尝试运行它,为其提供最大的数字以从中选择随机数:$./dice.pl201$./dice.lisp207$./dice.lisp2020没问题!PerlCheatSheetPerl是一种有趣而强大的语言。尽管自从Perl成为默认脚本语言以来,Python、Ruby和Go等新兴语言引起了很多人的关注,但Perl并不弱。事实上,它比以往任何时候都更好,并且拥有光明的未来。下次您正在寻找一种更灵活且易于交付的语言时,请尝试使用Perl并下载此备忘单!