 [講義連結](https://drive.google.com/drive/folders/1HvlyXF3bBDTMeIPtQfFBbmW80r-zpsst) ## Part.1 Perl #### #1 Introduction :::info * Perl語言的用途與特點 > * 系統的管理,例如Linux系統終端 > * 網頁的撰寫 > * 便攜性 > * 程式可在少行數內達成,適合終端編寫 * 常用指令列表   ::: #### #2 Data Types :::info * 命名不可包含 `@`、`$`、`%` * 變數標籤前會加上 `$`,例如 > * `$number = 1e-5;` > * `$string = “Hello World \n”;` * 要宣告只要在前面加上 `my` 即可,例如 > * `my $num_value = 1e-10;` * 陣列前會加上 `@` ,例如 > * `@arr_10 = (1..10);`,其中 `..` 為範圍符號 > * `@my_string_arr = (“ab”, “cde”, “efg”);` > * `@my_scalar_arr = ($a, $b, $c, $d);`,變數陣列的寫法 * 容器的寫法如下,例如Hash開頭會加上`%`  ::: #### #3 Control Structures and Operators :::info * 在Perl中支援了許多判斷的函式 > * `if`、`else`、`unless` 等判斷語句 > * `switch`、`case` 等選擇語句 > * `while`、`until`、`for`、`foreach` 等迴圈語句 * 在Perl中支援了許多種類的運算子 > * 算術運算子  > * 字串運算子  > * 比較運算子  > * 邏輯運算子  ::: #### #4 Functions :::info * 多為雜項的函式,若有需要直接參考 [#4 講義連結](https://docs.google.com/presentation/d/1GASKc9phm_CnMTVLzrFqY9L8iqE4-8Oq/edit#slide=id) ::: #### #5 Input and Output :::info * 使用 `<STDIN>` 來獲取使用者的input,例如 > * `$my_name = <STDIN>;` * 使用 `open`、`close` 並加上模式代碼來讀取、覆寫、關閉檔案,例如 > * `open (DATA, “<my_file.txt");` > * `close (DATA);`  * 使用 `print` 來輸出各式各樣的output * 使用 `tell` 來得知變數的儲存位置 * 使用 `seek` 來得知變數的指標 * 使用 `rename` 來重新命名檔案,例如 > * `rename (“~/test/file1.txt”, “~/test/file2.txt”);` ::: #### #6 Subroutines :::info * 子程序即程式語言中的function,可以用來節省重複性的程式撰寫 * 在呼叫子程序時前會加上 `&` ,例如  ::: #### #7 Regular Expressions :::info * 可以透過 `~` 來對變數進行各式各樣的過濾,例如  * 根據本身的變數型態、想過濾的元素不同,Perl程式的寫法也會隨之改變,詳情可以直接參照 [#7 講義連結](https://docs.google.com/presentation/d/1VtvAzcGKlrlDzH2g9mXxtToLGu6D2Xlz/edit#slide=id) ::: #### #8 Modules :::info * 可以使用 `package` 存放變數、子程序等等,功能即類似程式語言中的inlcude ::: ___ ## Part.2 TCL #### #9 Introduction :::info * TCL是Tool Command Language的縮寫 * TCL的用途與特點 > * 不需編譯器 > * 擴增性加且開源 > * 是種很快速的語言,配合GUI可以很快執行 * TCL的執行有兩步驟 > * 撰寫指令與變數的替換 > * 根據結果呈現出來的字串進行評估 ::: #### #10 Data Types :::info * 用 `set` 指令來賦值,例如 > * `% set value 10;` > * `% set string “Hello World”;` * TCL也有提供list與array的寫法,詳情可以參照講義 [#10 講義連結](https://docs.google.com/presentation/d/13z1FEj1D34bMvtHWpXZyRuvAfBG5jlIN/edit#slide=id) ::: #### #11 Control Structures and Operators :::info * 在TCL中支援了許多判斷的函式 > * `if`、`else` 等判斷語句 > * `switch` 等選擇語句 > * `while`、`for`、`foreach` 等迴圈語句 * 在TCL中支援了許多種類的運算子 > * 算術運算子  > * 比較運算子  > * 邏輯運算子  ::: #### #12 Input and Output :::info * 使用 `gets` 來獲取使用者的input,例如 > * `set my_name [gets stdin];` * 大部分功能與PERL語言相似 * 在TCL中,可以啟動額外的program並將其結果繼續使用下去,例如  ::: #### #13 Regular Expressions :::info * 可以用 `regexp` 來比較兩者,並於結果顯示是否相同,例如  * 可以用 `regsub` 來替換元素,例如  ::: #### #14 Procedures :::info * 程序即程式語言中的function,可以用來節省重複性的程式撰寫,例如  ::: #### #15 Packages :::info * 可以使用 `package` 存放變數、程序等等,功能即類似程式語言中的inlcude :::
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up