[轉]Shell向Perl指令碼中傳遞變數的方法

bulletming發表於2019-06-23

From:http://blog.csdn.net/bonny95/archive/2009/01/12/3760640.aspx
方法一:
In shell using export  to output a variable, and in perl using special variable %ENV to get shell's variables.
i.e.:
--- shell box---
$ \bin\ksh
# export x=Foo
# perl -e 'print $ENV{"x"}'
-------------


方法二:
象C一樣,PERL也有儲存命令列引數的陣列@ARGV,可以用來分別處理各個命令列引數;與C不同的是,$ARGV[0]是第一個引數,而不是程式名本身。
    $var = $ARGV[0]; # 第一個引數
    $numargs = @ARGV; # 引數的個數
  PERL中,<>運算子實際上是對陣列@ARGV的隱含的引用,其工作原理為:
1、當PERL直譯器第一次看到<>時,開啟以$ARGV[0]為檔名的檔案;
2、執行動作shift(@ARGV); 即把陣列@ARGV的元素向前移動一個,其元素數量即減少了一個。
3、<>運算子讀取在第一步開啟的檔案中的所有行。
4、讀完後,直譯器回到第一步重複。
  例:
    @ARGV = ("myfile1", "myfile2"); #實際上由命令列引數賦值
    while ($line = <>) {
    print ($line);
    } 
  將把檔案myfile1和myfile2的內容列印出來

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/82392/viewspace-591872/,如需轉載,請註明出處,否則將追究法律責任。

相關文章