1樓:匿名使用者
shift函式是取陣列的第一個元素,預設就取@_的第一個函式,這句一般用在程式的開頭,用於接收程式的引數,或者子函式的開頭,用於接收子函式的引數。
2樓:匿名使用者
把指令碼後面跟的第一個引數移除,並賦給$content
3樓:
先舉個列子:
上文應該這樣的吧
sub function
下文應該是這樣
function ( "haha!" )
執行後會出現 haha!
首先要明白, shift 是將陣列的第一個元素 $array[0] 移走, 並將這個元素回傳(return).
@arr = ( 1,2,3,4 );
my $str = shift @arr;
現在 $str是 1, @arr 是 ( 2,3,4 )當你將一些 資料 傳入涵數(sub)時, 該涵數裡就會有一個叫 @_ 的陣列自動生成,
並將你輸入的資料存起. shift ; 其實就是 shift @_ 的意思.
4樓:張萍和張桂秋
陣列中的第一個數賦值給content
5樓:匿名使用者
shift 可以得到第一個引數
perl aa.pl 2012
aa.pl種 my $content=shift;
那麼$content的值就是2012
6樓:匿名使用者
獲取程式傳入的引數。
例如你的tool執行為:
./tool 1
那麼$content的值就為1
perl程式中shift的用法
7樓:
通俗的說,不帶變數的shift就是不斷讀出:傳入函式的引數例如:呼叫 mysub('a' , 'b' , 'c')後$pk = shift的結果就是 pk裡面存入了 'a' 這個值如果下面還有語句例如:
$pk2 = shift 那麼pk2裡面就存入了 'b' 這個值
8樓:匿名使用者
shift array
shift
這個函式把陣列的第一個值移出並且返回它,然後把陣列長度減一併且把所有的東西都順移。如果在陣列中不再存在元素,它返回 undef。
如果省略了 array,那麼該函式在子過程和格式的詞法範圍裡移動 @_;
它在檔案範圍(通常是主程式)裡移動 @argv。
子過程通常以拷貝它們的引數到詞法變數裡開始,而 shift 可以用於這個目的:
sub marine
總之就是shift沒有陣列作為引數時,就是移動@_這個預設的引數。
perl裡經常用這種預設方法的。
perl 語言,有個正則的匹配不明白,my $file = shift; $file =~ /(s_7|s_8)/;
9樓:匿名使用者
my $file = shift;
if($file =~ /(s_7|s_8)/)這個指令碼查詢的是
$file變數裡面是否存在 s_7 或者s_8 這兩個字串。
比如 將上面的**儲存為run.pl 然後再命令列輸入perl run.pl s_7
那麼最後就會在螢幕列印出s_7
如果輸入
perl run.pl s_8
那麼久列印s_8
而輸入其他的 比如s_6則不列印。
其中$file = shift;
表示將指令碼後面跟的字串提取到$file這個變數裡面。
10樓:夢裡尋你我他
當前路徑下的s_7或者s_8子目錄
perl,我想用perl寫個小指令碼
如果是windows,裝一個perl軟體 如果是linux,基本都已經裝好了的。開啟檔案編輯器,寫好程式後儲存 pl 再雙擊執行,或者開啟命令介面輸perl pl執行 5條報文格式是什麼樣的。請提供樣板 求perl寫一個處理文字的指令碼 open fd,1.txt while s close fd ...
加急 如何將c語言嵌入perl中
有些應用中perl的速度比較慢,但是如果和c結合起來,就可以解決這樣的問題了。perl和c結合有三種辦法,第一是用c來寫xs製作perl模組,再在perl 中載入,這個比較簡單,cu和ibm都有文件看,我就不寫了。第二是在c中嵌入perl指令碼,這個對我來說沒什麼用,我還沒看。第三就是本文要說的,在...
Perl中以my開頭的語句,my是什麼作用
像c語言中有作用域的概念,比如一個百在函式中定義的變數,在函式外是無效的。perl也有作用域的概念,perl定義的變數默問認是全域性的,當在定義變數時使用。perl借取了c sed awk shell指令碼語言以及很多其他程式語言的特性,其中最重要的特性是它內部整合了正規表示式的功能,以及巨大的第三...