PERL陣列的遍歷

2021-06-18 16:49:24 字數 1244 閱讀 1012

在雙引號內可以使用@直接輸出陣列

@rocks=qw(flinstone slate rubblke);

print "quarrz @rocks limtstone\n";

#print "[email protected]";#如果我們真的想要輸出@21136.com.cn,那麼我們需要將@轉義,即\@;或者直接使用單引號

@fred=qw(hello dolly);

$y=2;

$x="this is $fred[1]`s place\n";

print $x;

$x="this is $fred[$y-2]`s place\n";

print $x;

print @fred;

print "\n";

$rock="ads";

foreach $rock(@fred)

print @fred;

print $rock;

foreach可以遍歷整個陣列,但是不同的是

在每次迴圈迭代時,控制變數,比如$rock不是列表元素的複製品,而他實際上就是列表元素,也就是說如果在迴圈中修改了控制變數,實際上就是修改了列表,然而當,迴圈結束

後控制變數仍然是迴圈之前的資料,如果未被賦值過那它就還是undef

perl中的預設變數"$_"

@tmp=qw(abc bcd efg);

foreach(@tmp)

print $_;

print "\n";

預設變數,即當未告知perl使用哪乙個變數或者數值的時候會自動使用的變數,不需要程式設計師自行宣告的變數

reverse操作符,即將列表中的值進行反向操作,需要注意的是該操作並不會改變傳遞進來的引數,因此如果沒有被賦值的列表,則該操作不再具有意義

sort操作符讀取列表中字元的值,並且根據字元編碼的公升序進行排列。

@tmp=qw(a b c d);

@sorted=sort(@tmp);

print @sorted;

乙個例外的例項

@number=qw(97 98 99 100 101 102);

@sorted=sort(@number);

foreach(@sorted)

輸出的結果是100 101 102 97 98 99

為什麼會這樣呢?因為根據預設的排序規則,排在首位的,先進行比較,首位的1自然要比9要小,所以,100,就排在了99的前面

perl遍歷檔案

本貼對三種遍歷資料夾方法比較。1.使用file find 2.遞迴遍歷。遍歷函式為lsr 3.使用佇列或棧遍歷。遍歷函式為lsr s 1.use file find copy to clipboard code usr bin perl w file find.pl author 路小佳 licen...

Perl 遍歷雜湊

我們在遍歷二維或多維的雜湊時,可以採用遞迴的方法.1.首先檢視每個value的值型別,如hash,array,還是簡單的標量 2.如果value的值型別是hash,則遞迴直到找到相應的array 或者標量 3.如果value的值型別是array,則通過迴圈列印出各個元素 4.如果value的值型別是...

Perl遍歷目錄

環境為windos,需要注意的兩點 1 預設activeperl下的採用的編碼是gbk,所以需要將字串轉為gbk才不會顯示亂碼 2 遍歷檔案目錄時,需要排除特殊的目錄.和.完整的 usr bin perl 2 use strict 3 use warnings 4 use encode qw fro...