==> 在 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>