



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、如果Perl是你使用的第一個編程語言,那N本學(xué)時將會使你感到頗有t趣2在語言中,你會發(fā)一個概念s一數(shù)據(jù)實際N可是對一2有時稱指針在pascal或C語言中,有時種技術(shù)稱如果Perl是你使用的第一個編程語言,那N本學(xué)時將會使你感到頗有t趣2在語言中,你會發(fā)一個概念s一數(shù)據(jù)實際N可是對一2有時稱指針在pascal或C語言中,有時種技術(shù)稱在匯編語言中則根本沒有指針的概念在BASIC或Java中2如果你前未使用等概念,那N可能必須多次閱讀本學(xué)時講解的某些部V1指針O清Perl_擁有些特殊類型的值,O過在 Perl中,它們都稱2在 Perl中可于許多目的,但在本學(xué)時中,你要學(xué)的是如何使來調(diào)用帶有多個參數(shù)的
2、復(fù)雜函數(shù)如何創(chuàng)建復(fù)雜的數(shù)據(jù)類型,如列表的列表2的一本書2卡片可指明本書是什N類型的書比如小說1非小說1參考書等,并指明本書放在什N位置2,它們是O種類的用,并甚可參中的v他卡片Perl類似卡,可指向各數(shù)據(jù)能夠知道它指向的是何種類別的數(shù)據(jù)如標(biāo)量1數(shù)或哈希,_知道些數(shù)據(jù)在什N地方可被拷貝,但O改原始的任何東西2對于一數(shù)據(jù),可2實際N一可指向v他2請牢記O面些要點,慢慢閱讀O面幾頁內(nèi)容,并在q們介紹有的頭腦使用賦值運算符,可創(chuàng)建和賦值一個普通的標(biāo)量量,如O示 Stones在k一W都很l常2時,在計算機中的某個地方有一個標(biāo) $a的位置,它包含了_如果將標(biāo)量$b賦予$a,比如$a=$b,那N會產(chǎn)生數(shù)據(jù)的
3、兩個拷貝,它們使用兩個O如果你想要兩個獨立的數(shù)據(jù)拷貝,那N擁有兩個拷貝是很好的2但是,如果想讓 $a和都一個數(shù)據(jù)拷貝,那N 指向一數(shù)據(jù)的指針,并O包含實際數(shù)據(jù)的本身若要創(chuàng)建對某個既定,可在量的前面N一個反斜建稱$ref的對$a,需要像O面樣賦予$refs可個賦值創(chuàng)建了類似O面樣的件$ref并O包含用于它自的任何數(shù)據(jù),它是對 $a 指向一數(shù)據(jù)的指針,并O包含實際數(shù)據(jù)的本身若要創(chuàng)建對某個既定,可在量的前面N一個反斜建稱$ref的對$a,需要像O面樣賦予$refs可個賦值創(chuàng)建了類似O面樣的件$ref并O包含用于它自的任何數(shù)據(jù),它是對 $a的一2量$a根本沒有改,然可照常被賦值$a=Foo或顯示量$r
4、ef在包含對$a2O能簡單地對$ref進(jìn)行操作,因它邊沒有通常的標(biāo)值2實際N如果輸出$ref,就會顯示類似SCALAR(0 x0000)的信o2若要通過$ref獲得$a$ref2可被視N面的方塊圖中按箭頭2$ref來輸出$a的值,你可像O面樣使用一個在N面的碼段中, $ref當(dāng)然包含2增的一個$告訴Perl,$ref中標(biāo)量值的標(biāo)量值被出并輸出_可通于修改$a中的原始值項修改形p了類似O面如果你使用$ref而O是那N放在$ref中將被撤并被實際值,如O示N面?zhèn)€碼段運行, $refO再包含一,它是一個標(biāo)量2你可像任何vN面的碼段運行$oref和$nref均可用于Gandalf=2_可放對某個,如O
5、示 在類似O面的形式如果使用$bref2來輸出書,那是請注意, $bref2符號,它需要增,才能獲得原始值13.1.1 對數(shù)_可創(chuàng)建對數(shù)和 在類似O面的形式如果使用$bref2來輸出書,那是請注意, $bref2符號,它需要增,才能獲得原始值13.1.1 對數(shù)_可創(chuàng)建對數(shù)和哈希在標(biāo)量量$aref包含了對整個數(shù)arr若要使$aref來問arr的各個部V,你可使用O列碼之一了清楚起,可使用花括號P及數(shù)的各個部V隔開,如O示例如,若要使用數(shù)P$aref0,便輸出arr的有元素,可使用O面?zhèn)€碼13.1.2 ,可使用反斜,就像創(chuàng)建標(biāo)量和數(shù)N面?zhèn)€碼段用于創(chuàng)建對哈希結(jié)構(gòu) %hash%href來問%hash的
6、各個部V,可使用O面些碼例子若要迭通過哈希結(jié)構(gòu),輸出有的值,可使用O面?zhèn)€碼數(shù)據(jù) 數(shù)據(jù) 數(shù)據(jù)數(shù)據(jù) 數(shù)據(jù) 數(shù)據(jù) 數(shù)據(jù) 數(shù) 13.1.3 由于整個數(shù),并可放在一個標(biāo)量中,因m借,你可調(diào)用帶有多個數(shù)或哈希結(jié)構(gòu)的函數(shù)你可能記得第8學(xué)時中q們講過,O面種碼段是O能運行的個碼O能運行,因 13.1.3 由于整個數(shù),并可放在一個標(biāo)量中,因m借,你可調(diào)用帶有多個數(shù)或哈希結(jié)構(gòu)的函數(shù)你可能記得第8學(xué)時中q們講過,O面種碼段是O能運行的個碼O能運行,因getarrays(fruit,veggies)將兩個數(shù)壓縮到單個數(shù)_中2在getarrays()函數(shù)中,將a和b賦予_,會導(dǎo)在放在_中的fruits和vegetabl
7、e的有元素都被賦予當(dāng)有數(shù)g入_之,就沒有辦法知道一個數(shù)在何時結(jié)和O一個數(shù)在何時開始有一個很大可發(fā)h作用的地方2你O必將整個數(shù)傳遞給 gearays要傳遞對些,無論$fruit_ref和$veg_ref可用來顯示或編輯數(shù)據(jù),如O示當(dāng)你將對標(biāo)量1數(shù)作參數(shù)傳遞給函數(shù)時,有幾個問題必須記住指向的原始數(shù)據(jù)進(jìn)行操作2請看O面些例子 在邊的例子中,當(dāng)按l常情況傳遞哈希結(jié)構(gòu)時, _得原始哈希結(jié)構(gòu)%hash中每個s鍵 在邊的例子中,當(dāng)按l常情況傳遞哈希結(jié)構(gòu)時, _得原始哈希結(jié)構(gòu)%hash中每個s鍵_值對的各個值2在子例程 changehash()中,在放入_中的哈希結(jié)構(gòu)的各個元素被拷貝,%local_hash就
8、被撤,而程序的要部V中的%hash則保持在右邊個例子中,對%hash通過_被傳遞到子例程changehash()中貝到標(biāo)量$href中,它然指原始哈希%hash2在子例程中, $href例程返回2changehash()返回,原始哈希結(jié)構(gòu)%hash將包含新s鍵13.1.4 創(chuàng)建對數(shù),可用來P子例程之間來回傳遞些結(jié)構(gòu),并可來創(chuàng)建O面q們很快就要介紹的一些復(fù)雜結(jié)構(gòu)2O過你應(yīng)知道,當(dāng)你創(chuàng)建了對哈希結(jié)構(gòu)數(shù),就O再需要原始哈希結(jié)構(gòu)或數(shù)2要對哈希結(jié)構(gòu)或數(shù)在,s原始數(shù)據(jù)O再在, Perl然保留著哈希結(jié)構(gòu)和數(shù)的各個元素在O面的碼段中,碼塊中創(chuàng)建了一個哈希結(jié)構(gòu) %hash,并個哈希結(jié)構(gòu)是碼塊在個碼塊中,標(biāo)量$h
9、ref被賦予對%hash使 失,$href中然有效因%hash是碼塊的_用結(jié)構(gòu)2當(dāng)結(jié)構(gòu)本身經(jīng)超出作域之,對的哈希結(jié)構(gòu)然可修改如果你察N面?zhèn)€碼塊,就會發(fā),它的唯一目的是創(chuàng)建對哈2Perl供了一個機制,可用來創(chuàng)建樣 ,并把它儲在 $ahref中花括號,但實際N并沒有創(chuàng)建新的量2當(dāng)數(shù)_用于傳遞子例程參數(shù)時,它是個的數(shù)。修改_數(shù)元素就會改變傳遞到函數(shù)中的原始值。修改傳遞給子例程的參數(shù),通常被認(rèn)為是O慎重的一種做法。如果你想讓子例程修改傳遞給它們的參數(shù),那么應(yīng)該傳遞對子例程的 。這種操作方法更加清楚。當(dāng)傳遞一個 時,可以認(rèn)為原始值是可以修改的。 可使用前面的對哈希=一節(jié)中介紹的有方法,對匿哈希結(jié)構(gòu)進(jìn)行操
10、作 可使用前面的對哈希=一節(jié)中介紹的有方法,對匿哈希結(jié)構(gòu)進(jìn)行操作樣,_可使用前面的對數(shù)=一節(jié)中介紹的方法對數(shù)進(jìn)行操作當(dāng)?shù)牧勘旧沓鲎饔糜驎r如果它是個_用量,那如果use strictl在運行,那NN面?zhèn)€碼段甚O進(jìn)行編譯2Perl將$ref的最一個實例視全局量,是O允許的2s使沒有use strict Perl的w警告特性_會輸出一個 undefinedvalue未定O的值o2些匿哈希結(jié)構(gòu)和匿數(shù)可合p某些結(jié)構(gòu)形式,們將在O一節(jié)中介紹構(gòu)2每個哈希結(jié)構(gòu)和數(shù)表一個標(biāo)量值,并由于它是單個標(biāo)量值,因m可在v他數(shù)和哈希結(jié)構(gòu)中,如O示O面各節(jié)將介紹列表和哈希結(jié)構(gòu)的一些常用結(jié)構(gòu)配置方法13.2.1 在Perl中
11、,列表中的列表常常用來表一種稱二維數(shù)的結(jié)構(gòu)2_就是說,標(biāo)準(zhǔn)數(shù)個值的線性列表,如O示二維數(shù)類似一個值的表格,面的每個元素按照軸N的一個點來進(jìn)行編址2數(shù)據(jù) 數(shù)據(jù) 數(shù)據(jù)數(shù)據(jù) 數(shù)據(jù) 數(shù)據(jù)數(shù)據(jù) 數(shù)據(jù) 數(shù)值值值值 Perl實際N并O支持真l的二維數(shù)Perl允許你使用數(shù)的數(shù),模仿建立二維若要創(chuàng)建數(shù)的數(shù),請使用O面?zhèn)€原O表達(dá)式 Perl實際N并O支持真l的二維數(shù)Perl允許你使用數(shù)的數(shù),模仿建立二維若要創(chuàng)建數(shù)的數(shù),請使用O面?zhèn)€原O表達(dá)式p2若要問最層的列表的各個元素s二維數(shù)中的單元格,可使用O面?zhèn)€碼若要確定最外層的列表中的元素數(shù)目,你可像對v他任何數(shù)那樣進(jìn)行操作,使用 表示法或者使用標(biāo)量NO文中的數(shù)若要確定層
12、列表中的某個列表的元素數(shù)目,可能有一點兒麻煩2語 $list_of_lists1回list_of_lists2如果將它輸出,則顯示類似ARR0 x00000個數(shù)據(jù)若要將list_of_lists的一個元素當(dāng)作數(shù)來處理,請在它的前面N一個符號 ,如示若要遍歷列表的列表中的每個元素,可使用O面?zhèn)€碼可添O面樣的結(jié)構(gòu)13.2.2 在N一節(jié)中,q們介紹了如何使和數(shù)創(chuàng)建基本的 Perl結(jié)構(gòu),s列表的列表2N可將數(shù)量O限制的數(shù)1標(biāo)量和哈希結(jié)構(gòu)的形合起來,創(chuàng)建更復(fù)雜的數(shù)據(jù)結(jié)構(gòu),比如O面些結(jié)構(gòu)哈希結(jié)構(gòu)的哈希結(jié)構(gòu)由于本書篇幅有限,無法一一介紹有些結(jié)構(gòu)2你安裝的每個 Perl含了一個稱 Perl Data Stru
13、ctures Cookbook(Perl的數(shù)據(jù)結(jié)構(gòu)大全)=文檔2它細(xì)而明白述了些結(jié)構(gòu)和許多v他數(shù)據(jù)結(jié)構(gòu)2對于每種數(shù)據(jù)結(jié)構(gòu)Per Data Structures Cookbook= 2 Cokb 2 Cokbok 13.2.3 指向什N種類的數(shù)據(jù)結(jié)構(gòu)外,在你慣之前,語_容2Perl提供了一些w,可幫你確定有s的情況首先,可輸出2Perl能夠顯示指向什N結(jié)構(gòu)2例如,O面?zhèn)€碼行個結(jié)構(gòu)意味著量$mystery_reference是對一個數(shù)量SCALAR1哈希結(jié)構(gòu)HASH或子例程CODE的 2m外,量_可是對2若要輸出 $mystery_Perl的調(diào)試程序_配有一些程序w,幫你確指向什N數(shù)據(jù)結(jié)構(gòu)2在調(diào)試
14、程序中,你可像通常那樣輸2O面?zhèn)€碼段顯示了一個被查看的 $ref 結(jié)構(gòu)和包含一個帶有兩個元素s鍵_8 fruit9和8vegetable結(jié)構(gòu)2調(diào)試程序甚能夠輸出列表的列表之類的復(fù)雜數(shù)據(jù)結(jié)構(gòu),如O示N面的例子顯示了一$a,它指向一個數(shù)ARRY0 x20170bd4而個數(shù),s ARRAY0 x201154841ARRAY0 x2011fbb4和 0 x2011faa0,每個數(shù)包含3個元素模塊DataDumper包 0 x2011faa0,每個數(shù)包含3個元素模塊DataDumper包含的一些函數(shù)能夠顯示二的,它的輸出格式是有效的Perl格式,它可入文件,并在被檢索,提供可儲結(jié)構(gòu)2DataDumper
15、模塊將在第14學(xué)時中介紹13.3 習(xí):另一當(dāng)你學(xué)了那N多的新奇概念和結(jié)構(gòu)之,需要來一點了2O面,并你可做一個簡單的游采用探險和狩獵之類的傳統(tǒng)游o方式,你被置于一個迷宮之中,必須找到你的出路個迷宮并無奇特之處,它是由一些間p,并每個間少有一個門2門可通向位于東1南1西1X的相鄰間2個游o的目的是找到一間密室2你會發(fā)通往密室有,外有許多走O通的路輸出13-2,并將它保Maze2運行程序,得到類似程13-1程13-程13- 第12行兩行碼是Perl程序l常的開始2-w使警 第12行兩行碼是Perl程序l常的開始2-w使警告特性被激活usestrict用于捕獲第49行用于定O述迷宮maze的結(jié)構(gòu)2顯示
16、的迷宮是個 44的柵格,用一個列表的有一個間 2,1是無法進(jìn)入的,在個結(jié)構(gòu)中用一個 - 來表示個間2實際N第1011行當(dāng)游o的玩向X或向南移時,迷宮中的當(dāng)前位置就需更2哈希結(jié)構(gòu)%direction用來根據(jù)老的位置和移方向計算玩新位置2如果向X=移,則使玩的x坐標(biāo)移-1向N,y坐標(biāo)保持O2如果向東=移,則玩的 x坐標(biāo)O,而y坐標(biāo)增12你將在第3334行碼中看到坐標(biāo)的更情況第1315行程序中使用的量用 my進(jìn),便使 use strict p當(dāng)?shù)剡\行2放$curr_x和$curr_y中的玩當(dāng)前位置被置0,02最目的地$x和$y被置3,32第17行根據(jù)柵格中的x,y坐標(biāo),函數(shù)顯示玩可在每個間中移的方向
17、2第20行在$maze$cx$cy的間述中選擇_母n1s1e和w,每次選擇1個_母2希結(jié)構(gòu)full中顯示nsew方向的相應(yīng)述2個哈希結(jié)構(gòu)用于將短_ n)轉(zhuǎn)換p目 (Norfh),供顯示之用第25行函數(shù)出一個方向放在$new中和對玩2第28行方向用lc改小寫_母, substr出第一個_母,并將它 (Norfh),供顯示之用第25行函數(shù)出一個方向放在$new中和對玩2第28行方向用lc改小寫_母, substr出第一個_母,并將它賦予$new2樣, s第29行搜索當(dāng)前間的$maze$xref$yref,找出給定的方向n1s1e和w 2如果 2第3334行玩的x和y坐標(biāo)被更改2如果方向是e,則$d
18、irectione是對兩個元素的數(shù)01 2x坐標(biāo)將遞增0,s$directione02Y坐標(biāo)將遞增第37行程序的體啟運行2循將O斷運行,直到玩的x和y坐標(biāo) 第39行需要的移方向讀入$move,用chomp刪除換行符2如果玩鍵入q開頭的任 move_to(move_to()子例程通過調(diào)整$curr_x和$curr_y,使玩作相應(yīng)的移若要修改迷宮,使之采用一種布局,需改放在 maze中的柵格2迷宮O一定需要做pl方形,_O需要給每個間制作映像,甚O需要在一有效的路徑2O過請住,迷宮O要它邊N的某個間開始2程序O會檢查迷宮的有效性,O過,如果你創(chuàng)一個無效迷宮, Perl就會發(fā)出警告2如果要移迷宮中的密室,需改$x和$y的值本學(xué)時q們介量1數(shù)和哈希結(jié)構(gòu)的基本概念2首先,講述了如何創(chuàng)建對 Perl的基本數(shù)據(jù)結(jié)2然,介紹了如何使用,對原始數(shù)據(jù)結(jié)構(gòu)進(jìn)行操作沒有Pm相s的量接著,說明了如何創(chuàng)建對哈希結(jié)構(gòu)或數(shù),過種稱匿儲2最介紹了如何使來創(chuàng)建復(fù)雜的數(shù)據(jù)結(jié)構(gòu)及何處可有數(shù)據(jù)結(jié)構(gòu)的文檔資料問題: 當(dāng)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 湖北省武漢市新城區(qū)聯(lián)盟2024-2025學(xué)年高三下學(xué)期四月模擬歷史試題(含答案)
- 建設(shè)工程內(nèi)部承包合同(知識研究版本)
- 江蘇省無錫市江陰市澄東片重點名校2025屆中考英語試題命題比賽模擬試卷(30)含答案
- 鐵門關(guān)職業(yè)技術(shù)學(xué)院《項目前分析和項目分析》2023-2024學(xué)年第一學(xué)期期末試卷
- 重慶航天職業(yè)技術(shù)學(xué)院《音樂素養(yǎng)》2023-2024學(xué)年第二學(xué)期期末試卷
- 麗水職業(yè)技術(shù)學(xué)院《模型制作與工藝》2023-2024學(xué)年第二學(xué)期期末試卷
- 中國石油大學(xué)(華東)《裝甲車輛工程專業(yè)導(dǎo)論》2023-2024學(xué)年第二學(xué)期期末試卷
- 山東省臨沂市蘭山區(qū)2024-2025學(xué)年高三3月調(diào)研考試物理試題含附加題含解析
- 惠州經(jīng)濟職業(yè)技術(shù)學(xué)院《生物倫理與安全》2023-2024學(xué)年第二學(xué)期期末試卷
- 湖南吉利汽車職業(yè)技術(shù)學(xué)院《服裝專業(yè)英語》2023-2024學(xué)年第二學(xué)期期末試卷
- 港航實務(wù) 皮丹丹 教材精講班課件 51-第2章-2.5.2-鋪面基層施工
- 單休企業(yè)考勤管理制度
- 廣東省深圳市福田區(qū)2023-2024學(xué)年七年級下學(xué)期期末生物學(xué)試題(解析版)
- 《Unit7Chinesefestivals》(教案)譯林版英語五年級下冊
- 合同到期不續(xù)約的通知模板
- 綠化養(yǎng)護(hù)服務(wù)投標(biāo)方案(技術(shù)標(biāo))
- 小區(qū)物業(yè)服務(wù)投標(biāo)方案(技術(shù)標(biāo))
- 電纜敷設(shè)及管內(nèi)穿線施工方案
- 幼兒園成語故事《磨杵成針》課件
- 2024年鄭州信息科技職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫學(xué)生專用
- 四季的問候合唱簡譜
評論
0/150
提交評論