一小点下载:专注做好下载站 www.luexi.com!
游戏
您当前所在位置:首页 > 游戏攻略 > 游戏心得

perl怎么下载

时间:2023-11-04 02:14:49  来源:本站  作者:佚名

其实perl怎么下载的问题并不复杂,但是又很多的朋友都不太了解perl下载,因此呢,今天小编就来为大家分享perl怎么下载的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

一、Perl入门教程

2楼真是的,人家还没入门,你直接整个文件操作干嘛?

Perl是一种最初开发用于文本操作的编程语言。现在它能应用于广泛的任务,包括系统管理、 web开发、网络编程、 GUI开发和更多的普通用途。

这个语言以实用性为目标(易用、高效、完整)宁愿失去美丽(小巧、优雅、迷你)。它使用方便,且支持面向过程和面向对象编程,内置强大的文本处理支持,并有世界上最令人印象深刻的第三方模块的集中营。

另一种方法是,把这个放到你的脚本第一行:

然后用/path/to/script.pl运行。当然,首先得让它能执行,你得chmod 755 script.pl(Unix下)。

(这里的第一行假设你有env程序。你也可以直接把你的perl解释器的路径直接放到第一行,比如#!/usr/bin/perl)

默认情况下,Perl非常随意。为了使它更强健建议每个程序由下列行开始:

附加的两行从perl中捕获您的代码中的各种常见的问题。它们检查不同的事情,所以你需要两个都加上。一个潜在的问题通过use strict;捕获,一旦它捕获到问题,会马上让你的程序停止运行。当然使用use warnings;时,仅仅出现警告(就好像命令行的-w选项)并不会停止程序。

一个Perl脚本或程序包含一条或多条语句。这些语句只需直接写在脚本中,而不需要像main()这样的东西作为程序入口。

# This is a comment(这是一条注释)

1.# this would print with a linebreak in the middle

2. print'Hello, world';

然而,只有双引号会“插入”变量值和像换行符(\n)这样的特殊字符(转义字符):

1. print"Hello,$name\n";# works fine

2. print'Hello,$name\n';# prints$name\n literally

你可以使用或省略括号来传递函数的参数。它们只是在偶尔要改变或明确优先级的时候必须使用。

1. print("Hello, world\n");

2. print"Hello, world\n";

Perl有3种主要的变量类型:标量(scalars)、数组(arrays)和哈希(hashes)。

标量的值可以是字符串、整数或浮点数,并且Perl会在需要的时候自动转换。你不需要预先声明你的变量类型,但是你需要在第一次使用它们的时候,使用my来声明它们。(这是use strict;所要求的)

2. print"The animal is$animal\n";

3. print"The square of$answer is",$answer*$answer,"\n";

有大量的“魔法”标量的名称看上去像标点或线路噪音。这些特殊的变量用于各种目的。现在你只要知道其中一个,这就是“默认变量”$_。它被许多Perl的函数用作默认的参数,并且它被隐式设置到某些循环结构中。

print;# prints contents of$_ by default(默认打印$_的内容)

1. my@animals=("camel","llama","owl");

3. my@mixed=("camel", 42, 1.23);

特殊变量$#array将返回数组最后一个元素的索引:

print$mixed[$#mixed];# last element, prints 1.23

你可能想使用$#array+ 1来得到这个数组的元素个数。别急,这很容易。在Perl预想找到一个标量值的时候(“在标量上下文”),使用@array会得到数组的元素个数:(译注:“上下文”是Perl很重要的特性之一,请查阅相关文档或在无忧Perl搜索相关内容)

if(@animals< 5){...}#译注:当@animals数组的元素个数少于5个的时候

当我们从数组获得元素值的时候,需要使用$,因为我们只要获取数组里的一个值;你请求一个标量,然后会获得一个标量。

(译注:获取多个值,使用@,因为我们要获取数组里的几个值(列表)。)

1.@animals[0,1];# gives("camel","llama");

2.@animals[0..2];# gives("camel","llama","owl");

3.@animals[1..$#animals];# gives all except the first element

你可以在列表里干些有意义的事情:

2. my@backwards= reverse@numbers;

有两个特殊的数组,一个是命令行传到你脚本的参数@ARGV;另一个是传递给子程序的参数@_。

1. my%fruit_color=("apple","red","banana","yellow");

你可以使用空白字符和=>操作符来美化上面的代码:

1.$fruit_color{"apple"};# gives"red"

你可以通过keys()和values()来获取键列表和值列表。

1. my@fruits= keys%fruit_colors;

2. my@colors= values%fruit_colors;

哈希没有特定的内部排序,然而你可以对键进行排序来遍历它。

和特殊的标量、数组一样,哈希也有特殊的。我们现在只要知道哈希%ENV包括所有环境变量

更复杂的数据类型可以使用引用来构造,允许你把列表和哈希放到另一个列表和哈希中。

引用是一个标量值,它可以引用任何其它的Perl数据类型。通过把引用存储为数组或哈希的元素值,你可以轻松创建列表/哈希中的列表/哈希。

以下示例演示了使用匿名哈希引用实现的两级哈希结构

3. description=>"single item",

7. description=>"ordered list of items",

11. description=>"key/value pairs",

16. print"Scalars begin with a$variables->{'scalar'}->{'sigil'}\n";

上面所有的例子都使用这种语法:

实际上,my不是必须的。你可以省略:(译注:前提是,你没有使用“use strict;”语句)

但是,上面的用法将创建一个全局变量,这是一个很差的编程实践。my创建一个词法作用域变量,这个变量只在定义它们的语句块中可见(比如一段包在大括号里的语句)。

9. print$y;# prints nothing;$y has fallen out of scope

结合使用my和在Perl脚本开头使用use strict,解释器将捕获常见的编程错误。比如,在上面的例子中,最后的print$y将引发一个编译时错误并阻止程序运行。强烈建议使用use strict语句!

Perl有许多常用的条件和循环语句。Perl 5.10甚至提供了分支语句(拼作given/when)。

条件可以是任何Perl表达式。比较和布尔条件语句中常用的逻辑运算符,请参阅有关信息的下一节中的运算符的列表。

这个否定版比if(!condition)更易读。

注意,大括号是必须的,即使代码块中只有一行。不过,这里有一个方法可以让你通过类似英语的语法来实现单行条件语句:

6.# the Perlish post-condition way

8. print"We have no bananas" unless$bananas;

为了和unless同样的理由,也有一个否定版本:

你也可以在后置条件里使用while:

print"LA LA LA\n" while 1;# loops forever

1. for($i= 0;$i<=$max;$i++){

自然Perl提供了更友好的列表遍历循环foreach以后,C语言风格的for循环在Perl几乎不需要了。

2. print"This element is$_\n";

5. print$list[$_] foreach 0..$max;

7.# you don't have to use the default$_ either...

8. foreach my$key(keys%hash){

9. print"The value of$key is$hash{$key}\n";

Perl附带了各种各样的内置函数。我们已经看到的几个,包括print,sort和reverse。

(为什么数字和字符串的比较运算符不同?因为我们没有不同的变量类型,并且Perl需要知道是以数字进行排序(99小于100)还是以字母进行排序(100在99前面))

一些操作符可以和=结合,像这样:

3.$a.="\n";# same as$a=$a."\n";

你可以使用open()函数来打开一个文件,用于输入或输出:

1. open(my$in,"<","input.txt") or die"Can't open input.txt:$!";

2. open(my$out,">","output.txt") or die"Can't open output.txt:$!";

3. open(my$log,">>","my.log") or die"Can't open my.log:$!";

你可以使用<>操作符从打开的文件句柄中读数据。在标量上下文中,它从文件句柄中读取一行;在列表上下文中,它读取整个文件,并将每一行作为列表的元素。

一次性把整个文件读完,叫做“啜食(slurping)”。它能让人满意,但它可能是内存吞噬者。大多数文本文件处理可以通过Perl的循环结构,一行一行地完成。

<>操作符经常出现在while循环里:

1. while(<$in>){# assigns each line in turn to$_

2. print"Just read in this line:$_";

我们已经看到了如何使用print()在标准输出里打印。但是,print()还能通过第一个可选参数指定一个文件句柄来打印(译注:将内容输出到指定的文件句柄中,即写入到文件句柄相关联的文件中)

1. print STDERR"This is your final warning.\n";

perl怎么下载

当你完成了对文件句柄的操作之后,你应该使用close()来关闭文件句柄。(老实说,如果你忘记关闭了,Perl会帮你处理。)

Perl对正则表达式的支持宽广而深入:

1. if(/foo/){...}# true if$_ contains"foo"

2. if($a=~/foo/){...}# true if$a contains"foo"

//匹配操作符(译注,完整的应该是:m//)默认操作$_,或者使用=~来绑定其它变量进行操作。

1. s/foo/bar/;# replaces foo with bar in$_

2.$a=~ s/foo/bar/;# replaces foo with bar in$a

3.$a=~ s/foo/bar/g;# replaces ALL INSTANCES of foo with bar in$a

你不仅能匹配固定的字符串。其实,你可以匹配任何你能想到的复杂正则表达式。

1..单个任意字符(默认不包含\n)

2.\s一个空白字符(空格, tab,换行,...)

6.\w一个能组成单词的字符(a-z, A-Z, 0-9, _)

7.\W一个不能组成单词的字符

8. [aeiou]匹配中括号内的任意一个字符

9. [^aeiou]匹配除了中括号内列出的字符之外的任意一个字符

10.(foo|bar|baz)匹配foo或bar或baz

1./^\d+/以一个或多个数字开头

3./(\d\s){3}/ 3个带空白字符的数字

5./(a.)+/匹配最少一次,含有a和任意字符

8.#从STDIN循环读入,并打印出非空白行:

括号的另一个用法是分组。它可以用来捕捉最后使用的正则表达式匹配的结果。这些结果用$1、$2……表示。

1.# a cheap and nasty way to break an email address up into parts

3. if($email=~/([^@]+)@(.+)/){

4. print"Username is$1\n";

5. print"Hostname is$2\n";

3. open my$logfile,">>","my.log" or die"Could not open my.log:$!";

现在我们可以像使用其它内置函数一样,使用该子程序了:

1. logger("We have a logger subroutine!");

什么是shift?传递给子程序的参数保存在@_数组中。shift函数的默认参数是@_。所以my$logmessage= shift;去掉第一个参数,并将其赋值给$logmessage。

1. my($logmessage,$priority)=@_;# common(通用)

2. my$logmessage=$_[0];# uncommon, and ugly(不通过,并且很丑陋)

Perl面向对象相对比较简单,这是实现使用引用什么样的对象知道自己是在Perl的概念为基础的封装。

刚开始进行Perl编程,你最常使用的Perl面向对象将是使用第三方模块,参见下文。

Perl模块提供了一系列的功能,可帮助您避免重复劳动,它们可以通过CPAN(www.cpan.org)下载。许多流行的模块都已经包含在了Perl发行包中。

本文由无忧Perl(www.51perl.com)翻译,转载请注明本文链接:www.51perl.com/perl-brief-introduction/

水平有限,错误难免,欢迎指正,并以原文为准。原文地址:http://perldoc.perl.org/perlintro.html

二、怎么安装perl模块

从 CPAN下载了Net-Server模块0.97版的压缩文件Net-Server-0.97.tar.gz,假设放在/usr/local/src/下。

解压缩这个文件,这时会新建一个Net-Server-0.97的目录。

tar xvzf Net-Server-0.97.tar.gz

如果测试结果报告“all test ok”,您就可以放心地安装编译好的模块了。

安装模块前,先要确保您对 perl5安装目录有可写权限(通常以 su命令获得),执行:

现在,试试 DBI模块吧。如果下面的命令没有给出任何输出,那就没问题。

上述步骤适合于 Linux/Unix下绝大多数的Perl模块。可能还有少数模块的安装方法略有差别,所以最好先看看安装目录里的 README或 INSTALL。

有的时候如果是build.pl的需要以下安装步骤:(需要Module::Build模块支持)

B、使用CPAN模块自动安装方法一:

安装前需要先联上网,并且您需要取得root权限。

初次运行CPAN时需要做一些设置,如果您的机器是直接与因特网相联(拨号上网、专线,etc.),那么一路回车就行了,只需要在最后一步选一个离您最近的 CPAN镜像站点。否则,如果您的机器位于防火墙之后,还需要设置ftp代理或http代理。下面是常用 cpan命令。

安装模块,自动完成Net::Server模块从下载到安装的全过程。

C、使用CPAN模块自动安装方法二:

三、perl怎么下载

官方网站:http://www.perl.org/

右上角有:Current Perl version或者直接点Download最新的是:5.12.2

如果看不懂就从网页右下角的语言中选出中文。

一般用的是Activeperl,如果选这个的话就会进到:http://www.activestate.com/activeperl/

再点“下载”进到:http://www.activestate.com/activeperl/downloads选择自己的机器用的版本,你是上官网下载,那我估计你是用的windows?那就选windows版本好了。

如果是linux,ubuntu最简单了,终端里面:sudo apt-get install perl就行了,其他的我在suse上装就从软件管理器中找perl勾选然后安装就行了。

END,本文到此结束,如果可以帮助到大家,还望关注本站哦!

相关游戏
梦幻庄园农场
42.0M / v3.9.6
天天爱闯关2
55.9M / v1.55
暴走撸啊撸
39.1M / v1.0
逃犯克星
59.7M / v1.1
全民巨星2
49.6M / v1.1
星系战争
39.1M / v1.7.3
魔力美女
9.2M / v1.0
飞船动感光波
24.5M / v1.0.3
弹射圆环
23.6M / v2.9.5
范冰冰魔范学院
300.6M / v1.2.1.5