成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Perl 語(yǔ)言基礎(chǔ)入門(mén)

開(kāi)發(fā) 后端
Perl 是一種有趣而強(qiáng)大的語(yǔ)言。盡管自從 Perl 成為默認(rèn)的腳本語(yǔ)言后,Python、Ruby 和 Go 等新興語(yǔ)言引起了許多人的注意,但 Perl 的功能并不弱。事實(shí)上,它比以往任何時(shí)候都要好,而且前途光明。


下載這份編程速查表,開(kāi)始學(xué)習(xí) Perl 的力量。


Perl 發(fā)布于 1988 年初,是一種后現(xiàn)代的編程語(yǔ)言,它通常被認(rèn)為是一種腳本語(yǔ)言,但它也能進(jìn)行面向?qū)ο蟮木幊獭K且环N成熟的語(yǔ)言,擁有 ??數(shù)以萬(wàn)計(jì)的庫(kù)??、GUI 框架,它有一種叫做 Raku 的衍生語(yǔ)言(即 Perl 6),以及一個(gè)活躍而熱情的社區(qū)。它的開(kāi)發(fā)者以其靈活性為榮。根據(jù)它的創(chuàng)造者 Larry Wall 的說(shuō)法,Perl 并不對(duì)它的用戶(hù)強(qiáng)加任何特定的編程風(fēng)格,而且有不止一種方法來(lái)完成大多數(shù)事情。

Perl 非常健壯,它曾經(jīng)被廣泛使用,這使它成為新的程序員可以嘗試的偉大語(yǔ)言。

Perl 基礎(chǔ)知識(shí)

在 Linux 和 macOS 上,你已經(jīng)安裝了 Perl。在 Windows 上,請(qǐng)從 ??Perl 網(wǎng)站?? 下載并安裝它。

Perl 表達(dá)式

Perl 源代碼的基本單位是 表達(dá)式,它是任何能返回一個(gè)  的東西。

例如,??1?? 是一個(gè)表達(dá)式,它返回 ??1?? 的值。表達(dá)式 ??2?? 返回 ??2?? 的值,而 ??a?? 返回字母 ??a??。

表達(dá)式可以更復(fù)雜。表達(dá)式 ??$a + $b?? 包含變量(數(shù)據(jù)的占位符)和加號(hào)(??+??),它是一個(gè)數(shù)學(xué)運(yùn)算符。

Perl 語(yǔ)句

Perl 語(yǔ)句是由表達(dá)式組成的。每個(gè)語(yǔ)句都以分號(hào)(??;??)結(jié)束。

比如說(shuō):

$c = $a + $b;

要嘗試運(yùn)行你自己的 Perl 語(yǔ)句,請(qǐng)打開(kāi)終端并輸入:

$ perl -e 'print ("Hello Perl\n");'

Perl 語(yǔ)句塊

Perl 語(yǔ)句塊可以用大括號(hào)(??{ }??)組合起來(lái)。塊是一種有用的組織工具,但它們也為那些你可能只需要在程序的一小部分使用的數(shù)據(jù)提供了 范圍。Python 用空白定義范圍,LISP 用小括號(hào),而 C 和 Java 用大括號(hào)。

變量

變量是數(shù)據(jù)的占位符。人類(lèi)每天都在使用變量而沒(méi)有意識(shí)到它。例如,“它”這個(gè)詞可以指代任何名詞,所以我們把它作為一個(gè)方便的占位符。“找到我的手機(jī)并把它拿給我”實(shí)際上是指“找到我的手機(jī)并把我的手機(jī)拿給我。”

對(duì)于計(jì)算機(jī)來(lái)說(shuō),變量不是一種便利,而是一種必需品。變量是計(jì)算機(jī)識(shí)別和跟蹤數(shù)據(jù)的方式。

在 Perl 中,你通過(guò)聲明一個(gè)變量名稱(chēng)和它的內(nèi)容來(lái)創(chuàng)建變量。

在 Perl 中,變量名稱(chēng)前面總是有一個(gè)美元符號(hào)(??$??)。

這些簡(jiǎn)單的語(yǔ)句創(chuàng)建了一個(gè)包含 ??"Hello"?? 和 ??"Perl"?? 字符串的變量 ??$var??,然后將該變量的內(nèi)容打印到終端:

$ perl -e '$var = "hello perl"; print ("$var\n");'

流程控制

大多數(shù)程序需要做出決定,這些選擇由條件語(yǔ)句和循環(huán)來(lái)定義和控制。??if?? 語(yǔ)句是最直觀的一種。Perl 可以測(cè)試一個(gè)特定的條件,然后 Perl 根據(jù)這個(gè)條件決定程序如何進(jìn)行。其語(yǔ)法類(lèi)似于 C 或 Java:

my $var = 1;

if ($var == 1) {
print("Hello Perl\n");
}
elsif ($var == 0){
print("1 not found");
}
else {
print("Good-bye");
}

Perl 也有一個(gè)簡(jiǎn)短的 ??if?? 語(yǔ)句的形式:

$var = 1;

print("Hello Perl\n") if ($var == 1);

函數(shù)和子程序

盡可能多地重復(fù)使用代碼是一種有益的編程習(xí)慣。這種做法可以減少錯(cuò)誤(或?qū)㈠e(cuò)誤合并到一個(gè)代碼塊中,因此你只需修復(fù)一次),使你的程序更容易維護(hù),簡(jiǎn)化你的程序邏輯,并使其他開(kāi)發(fā)者更容易理解它。

在 Perl 中,你可以創(chuàng)建一個(gè) 子程序,它接受輸入(存儲(chǔ)在一個(gè)特殊的數(shù)組變量 ??@_?? 中)并可能返回一個(gè)輸出。你可以使用關(guān)鍵字 ??sub?? 來(lái)創(chuàng)建一個(gè)子程序,后面跟一個(gè)你選擇的子程序名稱(chēng),然后是代碼塊:

#!/usr/bin/env perl

use strict;
use warnings;

sub sum {
my $total = 0;

for my $i(@_){
$total += $i;
}

return($total);
}

print &sum(1,2), "\n";

當(dāng)然,Perl 有許多子程序,你不必自己去創(chuàng)建。有些是內(nèi)置于 Perl 中的,而社區(qū)庫(kù)則提供了其他的。

用 Perl 編寫(xiě)腳本

Perl 可以被編譯,也可以作為一種解釋型的腳本語(yǔ)言使用。后者是剛?cè)腴T(mén)時(shí)最簡(jiǎn)單的選擇,特別是如果你已經(jīng)熟悉了 Python 或 ??shell 腳本??。

這里有一個(gè)用 Perl 編寫(xiě)的簡(jiǎn)單的擲骰子腳本。把它讀一遍,看看你是否能跟上它。

#!/usr/bin/env perl

use warnings;
use strict;
use utf8;
binmode STDOUT, ":encoding(UTF-8)";
binmode STDERR, ":encoding(UTF-8)";

my $sides = shift or
die "\nYou must provide a number of sides for the dice.\n";

sub roller {
my ($s) = @_;

my $roll = int(rand($s));
print $roll+1, "\n";
}

roller($sides);

第一行告訴你的 ??POSIX?? 終端要使用什么可執(zhí)行文件來(lái)運(yùn)行該腳本。

接下來(lái)的五行是模板式的包含內(nèi)容和設(shè)置。??use warnings?? 的設(shè)置告訴 Perl 檢查錯(cuò)誤,并在終端對(duì)它發(fā)現(xiàn)的問(wèn)題發(fā)出警告。??use strict?? 設(shè)置告訴 Perl 在發(fā)現(xiàn)錯(cuò)誤時(shí)不要運(yùn)行腳本。

這兩個(gè)設(shè)置都可以幫助你在代碼中的錯(cuò)誤導(dǎo)致問(wèn)題之前發(fā)現(xiàn)它們,所以通常要在你的腳本中激活它們。

腳本的主要部分開(kāi)始于對(duì)腳本從終端啟動(dòng)時(shí)提供給它的 ??參數(shù)?? 進(jìn)行分析。在這種情況下,預(yù)期的參數(shù)是一個(gè)虛擬骰子的所需的面的數(shù)量。Perl 將其視為一個(gè)堆棧,并使用 ??shift?? 函數(shù)將其分配給變量 ??$sides??。當(dāng)沒(méi)有提供參數(shù)時(shí),??die?? 函數(shù)會(huì)被觸發(fā)。

用 ??sub?? 關(guān)鍵字創(chuàng)建的 ??roller?? 子程序(或函數(shù)),使用 Perl 的 ??rand?? 函數(shù)生成一個(gè)偽隨機(jī)數(shù),最大不超過(guò)參數(shù)的數(shù)字。這意味著在這個(gè)程序中,一個(gè) 6 面的骰子不可能擲出 6,但它可以擲出 0。這對(duì)計(jì)算機(jī)和程序員來(lái)說(shuō)是沒(méi)有問(wèn)題的,但對(duì)大多數(shù)用戶(hù)來(lái)說(shuō),這是令人困惑的,所以它可以被視為一個(gè) bug。為了在這個(gè) bug 成為問(wèn)題之前解決它,下一行在隨機(jī)數(shù)上加 1,并將結(jié)果作為擲骰子的結(jié)果打印出來(lái)。

當(dāng)引用傳遞給子程序的參數(shù)時(shí),你引用的是特殊變量 ??@_??,它是一個(gè)數(shù)組,包含了函數(shù)調(diào)用時(shí)括號(hào)內(nèi)的所有內(nèi)容。然而,當(dāng)從數(shù)組中提取一個(gè)值時(shí),數(shù)據(jù)被轉(zhuǎn)換成一個(gè)標(biāo)量(例子中的 ??$s?? 變量)。

子程序在被調(diào)用之前不會(huì)運(yùn)行,所以腳本的最后一行調(diào)用了自定義的 ??roller?? 函數(shù),將命令的參數(shù)作為函數(shù)的參數(shù)。

將該文件保存為 ??dice.pl??,并標(biāo)記為可執(zhí)行:

$ chmod +x dice.pl

最后,嘗試運(yùn)行它,為它提供一個(gè)最大的數(shù)字,從中選擇其隨機(jī)數(shù):

$ ./dice.pl 20
1
$ ./dice.lisp 20
7
$ ./dice.lisp 20
20

沒(méi)問(wèn)題!

Perl 速查表

Perl 是一種有趣而強(qiáng)大的語(yǔ)言。盡管自從 Perl 成為默認(rèn)的腳本語(yǔ)言后,Python、Ruby 和 Go 等新興語(yǔ)言引起了許多人的注意,但 Perl 的功能并不弱。事實(shí)上,它比以往任何時(shí)候都要好,而且前途光明。

下次你想找一種更靈活的語(yǔ)言,并有簡(jiǎn)單的交付方式時(shí),不妨試試 Perl,并??下載這個(gè)速查表??!

責(zé)任編輯:龐桂玉 來(lái)源: Linux中國(guó)
相關(guān)推薦

2010-07-23 12:23:49

Perl基礎(chǔ)

2010-07-20 16:05:07

Perl包

2010-07-13 16:34:34

Perl 哈希表

2010-07-19 10:01:57

Perl函數(shù)

2010-07-21 09:50:51

Perl調(diào)試

2011-08-10 17:04:43

JavaScript

2010-07-16 10:44:54

Perl數(shù)組

2010-07-20 16:13:25

Perl線(xiàn)程

2010-07-13 13:27:13

Perl復(fù)雜數(shù)據(jù)結(jié)構(gòu)

2010-07-19 09:52:04

Perl標(biāo)量

2010-07-21 13:59:59

Perl引用

2010-07-13 16:20:21

Perl 哈希表

2010-07-20 13:19:16

Perl入門(mén)手冊(cè)

2010-07-19 15:37:48

Perl日期時(shí)間

2010-07-19 09:16:47

Perl包

2010-07-16 10:53:30

Perl基礎(chǔ)

2010-07-16 11:22:31

Perl

2010-07-16 12:50:45

Perl語(yǔ)言

2010-07-13 15:43:57

Perl語(yǔ)言

2010-07-26 11:19:19

Perl入門(mén)手冊(cè)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 久久一二三区 | 国产日韩欧美在线播放 | 亚洲精品68久久久一区 | 亚洲免费视频网站 | 国产精品.xx视频.xxtv | 色资源在线 | 国产一区二区三区在线看 | 国产一区欧美一区 | 日韩免费高清视频 | www.日韩高清 | 国产精品2区 | 91天堂| 久久小视频 | 男人天堂午夜 | 国产一区二区三区 | 精品不卡| 久久久精品天堂 | 精品乱码一区二区三四区视频 | 国产一区在线看 | 国产色网 | a爱视频 | 国产成人99久久亚洲综合精品 | 国产免费一区 | 91精品国产欧美一区二区成人 | www操操 | 国产日韩欧美一区二区 | 国产情侣一区 | 国产精品久久久久久久久久久久冷 | 国内精品久久久久久久 | 亚洲第一在线 | 亚洲男人天堂 | 国产在线a | 伊人免费观看视频 | 亚洲协和影视 | 在线观看视频你懂得 | 久久99精品视频 | 国产91久久精品一区二区 | 国内精品视频 | 91九色视频| 日韩精品一区二区在线观看 | 97伦理电影网 |