精華區beta Programming 關於我們 聯絡資訊
==> 在 tbsky@cis_nctu (sky) 的文章中提到: > 我想改用 Perl 取代 shell script, 但有以下數點不明: > 請問 perl 是否有 macro 功能類似 csh 的 alias 或 posix sh 的 function > 因為程式裡有用到這類功能,而若使用副程式會產生新的 process (是嗎?) > 另外 do() 這個 function 是否同 csh 的 source 及 sh 的 . 呢? > 另外在 perl 裡要如何取用及修改環境變數呢? > 謝謝您的回答囉.... 經過一番實驗後自問自答..... 取用環境變數 是用 $ENV{環境變數名} do() 應該是跟 source 或 . 差不多 perl 的 macro 功能叫做 local function ???? 這個部份有沒有人可以教我怎麼做呢? 我有兩個用 csh 和 sh 寫好可用的 macro 該如何改成在 perl 底下用?? csh: alias SOT 'echo \#\%\@ "\!:*"; set SYNC = $<' posix-sh : function SOT { echo \#\%\@ $* read SYNC return } 為什麼需要這麼奇怪的 macro 是因為我必須在某個應用軟體下寫 script 而該應用軟體的內部指令是用 "攔截標準輸出??" 的方式達成的.如上例 之 SOT 為該軟體之 "字串印出" 指令,若打 SOT "Hello World" 就會在該 軟體之視窗內顯示 "Hello World".其方式為攔截 "#%@" 碼並解譯成內部 指令. 請問用 perl 要怎樣才能達成上面兩個 macro 呢???? -- * Origin: ★ 交通大學資訊科學系 BBS ★ <bbs.cis.nctu.edu.tw: 140.113.23.3> > -------------------------------------------------------------------------- < 發信人: tbsky.bbs@cis.nctu.edu.tw (sky), 看板: Programming 標 題: Re: 請問 perl 如何取代 shell script ?? 發信站: 交大資科_BBS (Fri Dec 25 18:07:21 1998) 轉信站: Ptt!news.ntu!ctu-gate!news.nctu!news.cis.nctu!cis_nctu ==> 在 tbsky@cis_nctu (sky) 的文章中提到: > ==> 在 tbsky@cis_nctu (sky) 的文章中提到: > > 我想改用 Perl 取代 shell script, 但有以下數點不明: > > 請問 perl 是否有 macro 功能類似 csh 的 alias 或 posix sh 的 function > > 因為程式裡有用到這類功能,而若使用副程式會產生新的 process (是嗎?) > > 另外 do() 這個 function 是否同 csh 的 source 及 sh 的 . 呢? > > 另外在 perl 裡要如何取用及修改環境變數呢? > > 謝謝您的回答囉.... > 經過一番實驗後自問自答..... > 取用環境變數 是用 $ENV{環境變數名} > do() 應該是跟 source 或 . 差不多 > perl 的 macro 功能叫做 local function ???? > 這個部份有沒有人可以教我怎麼做呢? > 我有兩個用 csh 和 sh 寫好可用的 macro 該如何改成在 perl 底下用?? > csh: > alias SOT 'echo \#\%\@ "\!:*"; set SYNC = $<' > posix-sh : > function SOT > { > echo \#\%\@ $* > read SYNC > return > } > 為什麼需要這麼奇怪的 macro 是因為我必須在某個應用軟體下寫 script > 而該應用軟體的內部指令是用 "攔截標準輸出??" 的方式達成的.如上例 > 之 SOT 為該軟體之 "字串印出" 指令,若打 SOT "Hello World" 就會在該 > 軟體之視窗內顯示 "Hello World".其方式為攔截 "#%@" 碼並解譯成內部 > 指令. > 請問用 perl 要怎樣才能達成上面兩個 macro 呢???? 再經過一番實驗後自問自答: do 的功能和 source 或 . 是不同的.很爛.無法達到真正 include 的功能 比較好的方式是用 require(),但令我吃驚的是,即使 require 也無法達成 include 這麼簡單的功能,換句話說,如果我把一個 perl 程式拆成兩個, 我竟然沒有辦法在第一個程式中含入第二個而達成原來的功能. 我對 perl 的信心有點動搖了. 一開始就困難重重,而且,似乎沒有辦法達成 macro 的替換功能??? 害我必須用副程式的複雜方法.... 有沒有人是用 perl 取代 shell script 的呢??似乎並不是想像中那麼方便 ..... -- * Origin: ★ 交通大學資訊科學系 BBS ★ <bbs.cis.nctu.edu.tw: 140.113.23.3>