



版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、如果Perl是你使用的第一個編程語言,那N本學時將會使你感到頗有t趣2在語言中,你會發(fā)一個概念s一數據實際N可是對一2有時稱指針在pascal或C語言中,有時種技術稱如果Perl是你使用的第一個編程語言,那N本學時將會使你感到頗有t趣2在語言中,你會發(fā)一個概念s一數據實際N可是對一2有時稱指針在pascal或C語言中,有時種技術稱在匯編語言中則根本沒有指針的概念在BASIC或Java中2如果你前未使用等概念,那N可能必須多次閱讀本學時講解的某些部V1指針O清Perl_擁有些特殊類型的值,O過在 Perl中,它們都稱2在 Perl中可于許多目的,但在本學時中,你要學的是如何使來調用帶有多個參數的
2、復雜函數如何創(chuàng)建復雜的數據類型,如列表的列表2的一本書2卡片可指明本書是什N類型的書比如小說1非小說1參考書等,并指明本書放在什N位置2,它們是O種類的用,并甚可參中的v他卡片Perl類似卡,可指向各數據能夠知道它指向的是何種類別的數據如標量1數或哈希,_知道些數據在什N地方可被拷貝,但O改原始的任何東西2對于一數據,可2實際N一可指向v他2請牢記O面些要點,慢慢閱讀O面幾頁內容,并在q們介紹有的頭腦使用賦值運算符,可創(chuàng)建和賦值一個普通的標量量,如O示 Stones在k一W都很l常2時,在計算機中的某個地方有一個標 $a的位置,它包含了_如果將標量$b賦予$a,比如$a=$b,那N會產生數據的
3、兩個拷貝,它們使用兩個O如果你想要兩個獨立的數據拷貝,那N擁有兩個拷貝是很好的2但是,如果想讓 $a和都一個數據拷貝,那N 指向一數據的指針,并O包含實際數據的本身若要創(chuàng)建對某個既定,可在量的前面N一個反斜建稱$ref的對$a,需要像O面樣賦予$refs可個賦值創(chuàng)建了類似O面樣的件$ref并O包含用于它自的任何數據,它是對 $a 指向一數據的指針,并O包含實際數據的本身若要創(chuàng)建對某個既定,可在量的前面N一個反斜建稱$ref的對$a,需要像O面樣賦予$refs可個賦值創(chuàng)建了類似O面樣的件$ref并O包含用于它自的任何數據,它是對 $a的一2量$a根本沒有改,然可照常被賦值$a=Foo或顯示量$r
4、ef在包含對$a2O能簡單地對$ref進行操作,因它邊沒有通常的標值2實際N如果輸出$ref,就會顯示類似SCALAR(0 x0000)的信o2若要通過$ref獲得$a$ref2可被視N面的方塊圖中按箭頭2$ref來輸出$a的值,你可像O面樣使用一個在N面的碼段中, $ref當然包含2增的一個$告訴Perl,$ref中標量值的標量值被出并輸出_可通于修改$a中的原始值項修改形p了類似O面如果你使用$ref而O是那N放在$ref中將被撤并被實際值,如O示N面?zhèn)€碼段運行, $refO再包含一,它是一個標量2你可像任何vN面的碼段運行$oref和$nref均可用于Gandalf=2_可放對某個,如O
5、示 在類似O面的形式如果使用$bref2來輸出書,那是請注意, $bref2符號,它需要增,才能獲得原始值13.1.1 對數_可創(chuàng)建對數和 在類似O面的形式如果使用$bref2來輸出書,那是請注意, $bref2符號,它需要增,才能獲得原始值13.1.1 對數_可創(chuàng)建對數和哈希在標量量$aref包含了對整個數arr若要使$aref來問arr的各個部V,你可使用O列碼之一了清楚起,可使用花括號P及數的各個部V隔開,如O示例如,若要使用數P$aref0,便輸出arr的有元素,可使用O面?zhèn)€碼13.1.2 ,可使用反斜,就像創(chuàng)建標量和數N面?zhèn)€碼段用于創(chuàng)建對哈希結構 %hash%href來問%hash的
6、各個部V,可使用O面些碼例子若要迭通過哈希結構,輸出有的值,可使用O面?zhèn)€碼數據 數據 數據數據 數據 數據 數據 數 13.1.3 由于整個數,并可放在一個標量中,因m借,你可調用帶有多個數或哈希結構的函數你可能記得第8學時中q們講過,O面種碼段是O能運行的個碼O能運行,因 13.1.3 由于整個數,并可放在一個標量中,因m借,你可調用帶有多個數或哈希結構的函數你可能記得第8學時中q們講過,O面種碼段是O能運行的個碼O能運行,因getarrays(fruit,veggies)將兩個數壓縮到單個數_中2在getarrays()函數中,將a和b賦予_,會導在放在_中的fruits和vegetabl
7、e的有元素都被賦予當有數g入_之,就沒有辦法知道一個數在何時結和O一個數在何時開始有一個很大可發(fā)h作用的地方2你O必將整個數傳遞給 gearays要傳遞對些,無論$fruit_ref和$veg_ref可用來顯示或編輯數據,如O示當你將對標量1數作參數傳遞給函數時,有幾個問題必須記住指向的原始數據進行操作2請看O面些例子 在邊的例子中,當按l常情況傳遞哈希結構時, _得原始哈希結構%hash中每個s鍵 在邊的例子中,當按l常情況傳遞哈希結構時, _得原始哈希結構%hash中每個s鍵_值對的各個值2在子例程 changehash()中,在放入_中的哈希結構的各個元素被拷貝,%local_hash就
8、被撤,而程序的要部V中的%hash則保持在右邊個例子中,對%hash通過_被傳遞到子例程changehash()中貝到標量$href中,它然指原始哈希%hash2在子例程中, $href例程返回2changehash()返回,原始哈希結構%hash將包含新s鍵13.1.4 創(chuàng)建對數,可用來P子例程之間來回傳遞些結構,并可來創(chuàng)建O面q們很快就要介紹的一些復雜結構2O過你應知道,當你創(chuàng)建了對哈希結構數,就O再需要原始哈希結構或數2要對哈希結構或數在,s原始數據O再在, Perl然保留著哈希結構和數的各個元素在O面的碼段中,碼塊中創(chuàng)建了一個哈希結構 %hash,并個哈希結構是碼塊在個碼塊中,標量$h
9、ref被賦予對%hash使 失,$href中然有效因%hash是碼塊的_用結構2當結構本身經超出作域之,對的哈希結構然可修改如果你察N面?zhèn)€碼塊,就會發(fā),它的唯一目的是創(chuàng)建對哈2Perl供了一個機制,可用來創(chuàng)建樣 ,并把它儲在 $ahref中花括號,但實際N并沒有創(chuàng)建新的量2當數_用于傳遞子例程參數時,它是個的數。修改_數元素就會改變傳遞到函數中的原始值。修改傳遞給子例程的參數,通常被認為是O慎重的一種做法。如果你想讓子例程修改傳遞給它們的參數,那么應該傳遞對子例程的 。這種操作方法更加清楚。當傳遞一個 時,可以認為原始值是可以修改的。 可使用前面的對哈希=一節(jié)中介紹的有方法,對匿哈希結構進行操
10、作 可使用前面的對哈希=一節(jié)中介紹的有方法,對匿哈希結構進行操作樣,_可使用前面的對數=一節(jié)中介紹的方法對數進行操作當的量本身超出作用域時如果它是個_用量,那如果use strictl在運行,那NN面?zhèn)€碼段甚O進行編譯2Perl將$ref的最一個實例視全局量,是O允許的2s使沒有use strict Perl的w警告特性_會輸出一個 undefinedvalue未定O的值o2些匿哈希結構和匿數可合p某些結構形式,們將在O一節(jié)中介紹構2每個哈希結構和數表一個標量值,并由于它是單個標量值,因m可在v他數和哈希結構中,如O示O面各節(jié)將介紹列表和哈希結構的一些常用結構配置方法13.2.1 在Perl中
11、,列表中的列表常常用來表一種稱二維數的結構2_就是說,標準數個值的線性列表,如O示二維數類似一個值的表格,面的每個元素按照軸N的一個點來進行編址2數據 數據 數據數據 數據 數據數據 數據 數值值值值 Perl實際N并O支持真l的二維數Perl允許你使用數的數,模仿建立二維若要創(chuàng)建數的數,請使用O面?zhèn)€原O表達式 Perl實際N并O支持真l的二維數Perl允許你使用數的數,模仿建立二維若要創(chuàng)建數的數,請使用O面?zhèn)€原O表達式p2若要問最層的列表的各個元素s二維數中的單元格,可使用O面?zhèn)€碼若要確定最外層的列表中的元素數目,你可像對v他任何數那樣進行操作,使用 表示法或者使用標量NO文中的數若要確定層
12、列表中的某個列表的元素數目,可能有一點兒麻煩2語 $list_of_lists1回list_of_lists2如果將它輸出,則顯示類似ARR0 x00000個數據若要將list_of_lists的一個元素當作數來處理,請在它的前面N一個符號 ,如示若要遍歷列表的列表中的每個元素,可使用O面?zhèn)€碼可添O面樣的結構13.2.2 在N一節(jié)中,q們介紹了如何使和數創(chuàng)建基本的 Perl結構,s列表的列表2N可將數量O限制的數1標量和哈希結構的形合起來,創(chuàng)建更復雜的數據結構,比如O面些結構哈希結構的哈希結構由于本書篇幅有限,無法一一介紹有些結構2你安裝的每個 Perl含了一個稱 Perl Data Stru
13、ctures Cookbook(Perl的數據結構大全)=文檔2它細而明白述了些結構和許多v他數據結構2對于每種數據結構Per Data Structures Cookbook= 2 Cokb 2 Cokbok 13.2.3 指向什N種類的數據結構外,在你慣之前,語_容2Perl提供了一些w,可幫你確定有s的情況首先,可輸出2Perl能夠顯示指向什N結構2例如,O面?zhèn)€碼行個結構意味著量$mystery_reference是對一個數量SCALAR1哈希結構HASH或子例程CODE的 2m外,量_可是對2若要輸出 $mystery_Perl的調試程序_配有一些程序w,幫你確指向什N數據結構2在調試
14、程序中,你可像通常那樣輸2O面?zhèn)€碼段顯示了一個被查看的 $ref 結構和包含一個帶有兩個元素s鍵_8 fruit9和8vegetable結構2調試程序甚能夠輸出列表的列表之類的復雜數據結構,如O示N面的例子顯示了一$a,它指向一個數ARRY0 x20170bd4而個數,s ARRAY0 x201154841ARRAY0 x2011fbb4和 0 x2011faa0,每個數包含3個元素模塊DataDumper包 0 x2011faa0,每個數包含3個元素模塊DataDumper包含的一些函數能夠顯示二的,它的輸出格式是有效的Perl格式,它可入文件,并在被檢索,提供可儲結構2DataDumper
15、模塊將在第14學時中介紹13.3 習:另一當你學了那N多的新奇概念和結構之,需要來一點了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的結構2顯示
16、的迷宮是個 44的柵格,用一個列表的有一個間 2,1是無法進入的,在個結構中用一個 - 來表示個間2實際N第1011行當游o的玩向X或向南移時,迷宮中的當前位置就需更2哈希結構%direction用來根據老的位置和移方向計算玩新位置2如果向X=移,則使玩的x坐標移-1向N,y坐標保持O2如果向東=移,則玩的 x坐標O,而y坐標增12你將在第3334行碼中看到坐標的更情況第1315行程序中使用的量用 my進,便使 use strict p當地運行2放$curr_x和$curr_y中的玩當前位置被置0,02最目的地$x和$y被置3,32第17行根據柵格中的x,y坐標,函數顯示玩可在每個間中移的方向
17、2第20行在$maze$cx$cy的間述中選擇_母n1s1e和w,每次選擇1個_母2希結構full中顯示nsew方向的相應述2個哈希結構用于將短_ n)轉換p目 (Norfh),供顯示之用第25行函數出一個方向放在$new中和對玩2第28行方向用lc改小寫_母, substr出第一個_母,并將它 (Norfh),供顯示之用第25行函數出一個方向放在$new中和對玩2第28行方向用lc改小寫_母, substr出第一個_母,并將它賦予$new2樣, s第29行搜索當前間的$maze$xref$yref,找出給定的方向n1s1e和w 2如果 2第3334行玩的x和y坐標被更改2如果方向是e,則$d
18、irectione是對兩個元素的數01 2x坐標將遞增0,s$directione02Y坐標將遞增第37行程序的體啟運行2循將O斷運行,直到玩的x和y坐標 第39行需要的移方向讀入$move,用chomp刪除換行符2如果玩鍵入q開頭的任 move_to(move_to()子例程通過調整$curr_x和$curr_y,使玩作相應的移若要修改迷宮,使之采用一種布局,需改放在 maze中的柵格2迷宮O一定需要做pl方形,_O需要給每個間制作映像,甚O需要在一有效的路徑2O過請住,迷宮O要它邊N的某個間開始2程序O會檢查迷宮的有效性,O過,如果你創(chuàng)一個無效迷宮, Perl就會發(fā)出警告2如果要移迷宮中的密室,需改$x和$y的值本學時q們介量1數和哈希結構的基本概念2首先,講述了如何創(chuàng)建對 Perl的基本數據結2然,介紹了如何使用,對原始數據結構進行操作沒有Pm相s的量接著,說明了如何創(chuàng)建對哈希結構或數,過種稱匿儲2最介紹了如何使來創(chuàng)建復雜的數據結構及何處可有數據結構的文檔資料問題: 當
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 赤峰工業(yè)職業(yè)技術學院《臨床血液學及檢驗》2023-2024學年第一學期期末試卷
- 貴州醫(yī)科大學《美術學專業(yè)導論》2023-2024學年第二學期期末試卷
- 七年級數學上冊第1章有理數1.5有理數的乘方1.5.1乘方1教案無答案新版新人教版
- 人工智能驅動的語言習得研究-全面剖析
- 深度學習模型在自然語言處理領域的應用-全面剖析
- 食品材料訂購合同范本
- 紫金礦業(yè)集團股份有限公司招聘真題2024
- 活性炭吸附去除微塑料的應用-全面剖析
- 馬鞍山當涂縣人民檢察院招聘真題2024
- 2025年消防執(zhí)業(yè)資格考試題庫(消防標準化建設)消防設施操作員消防設備維護試題
- 第十七屆山東省職業(yè)院校技能大賽高職組“動物疫病檢疫檢驗”賽項規(guī)程
- 網絡與信息安全管理組織機構設置及工作職責
- 【MOOC】電路基礎-西北工業(yè)大學 中國大學慕課MOOC答案
- 醫(yī)院食堂營養(yǎng)配餐方案
- 自身免疫相關性腦病
- TCI 324-2024 冠心病患者防治精準護理技術規(guī)范
- 危重癥患者留置管路管理
- 重慶市高2025屆高三第二次質量檢測 化學試卷(含答案)
- 20S515 鋼筋混凝土及磚砌排水檢查井
- 酒店籌備開業(yè)流程手冊范本
- DB37T 1389-2024鋼箱梁頂推施工技術規(guī)范
評論
0/150
提交評論