Perl学習のまとめ

6520 ワード

Perlの意味
Practical Extraction and Report Language実用抜粋とレポート言語
Pathologically Eclectic Rubbish Lister病態折衷式ごみリスト
 
Perlという言葉があって、それから解釈があって、両方の解釈はLarryに認められました.
 
Perlの原則
 
一:データ型
   1.定数
定数は$変数名で定義されます
$name = "ahcming";              #  
$age = 24;                      #  

1)数字Perlでは、数字は二重精度浮動小数点数で演算されます
255                                           #  
0377                                          #  (octal) 0 , 255
0xFF                                          #  (hexadecimal) 0x , 255
0b11111111                                    #  (binary) 0b , 255

数値演算子
+                # 2 + 3 = 5
-                # 2 - 3 = -1
*                # 2 * 3 = 6
/                # 2 / 3 = 0.66666666666
%                #   2 % 3 = 2
**               #   2**3 = 8
   
2)文字列
文字列は、単一引用符で囲まれていてもよいし、二重引用符で囲まれていてもよい.両者の違いは以下の通りである.
'ahcming'                        # 7  
"ahcming"                        #  'ahcming' 

'ahcming
' # 9 ,\,n "ahcming
" # 8 ,
( )

すなわち、二重引用符の文字列はそれらの特殊な文字に対して変数が自動的に置換され、一重引用符はそのまま出力.
 
文字列オペレータ
a.  "."
"hello" . "world"       #  "helloworld"

b.  "x"
"ahcming" x 3           #  "ahcmingahcmingahcming"

c. 
eq              #  
ne              #  
lt              #  
gt              #  
le              #  
ge              #  
 
   2.はいれつ
いくつかの配列の一般的な使い方
@names;                           #  
$names[0];                        #  0 , 0 
$names[2] = "intoms";             #  2 , , @names 3 
$names[-1];                       #  @names , intoms
$names[-100];                     #  100 , 

 
配列の初期化と付与
@num1 = (1,3,50);                         #  3 
@num2 = (1..100);                         #  1 100 100 
@num3 = ($n..$m);                         #  $n<=$m,  $n,$m ,  $n>$m, 

@str = qw(s1,s2,s3,s4);                   # qw  s1, 
@path = qw{/usr/bin, /home/aaa, .};       # qw  
 
配列を操作する方法
1.pop                                     #  
@array = 1..5;
$num = pop(@array);                       # $num = 5;@array 1,2,3,4

2.push                                    #  , 
push(@array, 5);                          # @array 1,2,3,4,5
push @array, 6..10;                       # @array  1,2,3,4,5,6,7,8,9,10
@ohers = qw/5 4 3 2 1/;
push(@array, @others);                    #  others @array

3.shfit                                   #  
@array = qw#dino fred barney#;
$name = shift(@array);

4.unshift                                 #  , push

5.reverse                                 #  
@num = 6..10;
@num2 = reverse(@num);                    # @num2 10,9,8,7,6,@num 

6.sort                                    #  ASCII 
 
   3.ハッシュ
ハッシュは関連配列,ハッシュなどとも呼ばれる.
a.定義
%hash=();                #  hash
%hash={};               #  hash

%hash=("lincon",25,"ahcming",13);
%hash=("lincon"=>25, "ahcming"=>13);    #  , 

b.アクセスhash
%hash{key}            #  hash key value, hash key, undef %hash 

 exists(%hash{key}) key//   
$value = exists(%hash{key})?$hash{key}:defaultValue;

$hash{key} = value;     #  hash key==>value  

c.hashを巡る
for $key ( keys(%hash) ) {
     print $key . ", " . $hash{$key} . "
"; } while( ($key,$value) = each(%hash) ) { print "$key ==> $value
"; }

d.その他の操作
i)  hash 
$hash_size = keys(%hash);     # %hash $hash_size 
print scalar keys(%h) . "
"; # %h 。 scalar ii) hash undef(%hash);

e.ハッシュのハッシュ
//  
 
二:コードフロー制御
   1.じゅんじょ
   2.選択
1. if
if( boolean  ) {
    #  
}

2.if-else
if( boolean  ) {
    #  
} else {
    #  
}

3.if-elsif-else
if( boolean  ) {
    #  
} elsif( boolean  ) {
    #  
} else {
   #  
}
 
   3.ループ
1.for  
for( $x = 0; $x < 10; $x++ ) {
   #
}
 C ,  for , 
for(;;) {
   # 
}

2.foreach
foreach (@array) {
   #  $_ 
}

foreach $e (@array) {
   #  @array $e 
}

3.while
while( boolean   ) {
   #  
}

 
ループを終了:
next;                         #  , C continue
last;                         #  , C break

 
3:サブプロシージャの定義
一般的なフォーマット
sub funName {

    #return xxx;
}

 
説明:
     1.funNameはプロセス名です.&funName()による呼び出し方法
&fun();                       #   
&fun("ahcming", 18);          #  
fun("ahcming", 18);           #  perl , &
fun "ahcming", 18             #  , , 
 
     2.funNameは省略できますが、匿名の方法に相当します.使い方は以下の通りです.
$value = sub {
   #  
   #  , , 
}

 
  3.パラメータの伝達
すべてのパラメータは、数、タイプにかかわらず、1つの配列に配置されます($)内側
パラメータ伝達は参照伝達(配列内に配置されるため)であるため、メソッド内でパラメータを修正すると外の変数に影響します.
受信したパラメータをmyで宣言し、局所変数を形成する方法があります.
sub fun {
   my($value, @array, %map) = $_;
   #  
   #  
   #  
}
 
    4.戻り値
メソッドはreturnで明示的に戻り値を指定するか、暗黙的に指定することができます.暗黙的に指定したルールはメソッドの最後の行の結果がメソッドの戻り値です.
sub fun {
   # xxxxxxx
   # xxxxxxxxx

   # waitarray  
   return waitarray?@array:$value;
}