Perl Array
Un array è un valore scalare memorizzato elenco non ordinato di variabili.
@ L'inizio di un array di variabili. elementi di un array di accesso che utilizzano$ variabile + nome + [index] per leggere il formato, gli esempi sono i seguenti:
#!/usr/bin/perl @hits = (25, 30, 40); @names = ("google", "w3big", "taobao"); print "\$hits[0] = $hits[0]\n"; print "\$hits[1] = $hits[1]\n"; print "\$hits[2] = $hits[2]\n"; print "\$names[0] = $names[0]\n"; print "\$names[1] = $names[1]\n"; print "\$names[2] = $names[2]\n";
Il programma utilizza il simbolo $ \ a fuggire, così è uscita.
Il programma precedente, l'uscita è:
$hits[0] = 25 $hits[1] = 30 $hits[2] = 40 $names[0] = google $names[1] = w3big $names[2] = taobao
Creazione di un array
variabile array con l'inizio@ simbolo, l'elemento è tra parentesi può anche essere QWiniziare a definire gli array.
@array = (1, 2, 'Hello'); @array = qw/这是 一个 数组/;
Il secondo array utilizzando l'operatoreqw //, che restituisce una lista di stringhe, elementi di matrice separati da spazi.Naturalmente, è anche possibile utilizzare più linee per definire la matrice:
@days = qw/google taobao ... w3big/;
È inoltre possibile assegnare un indice per l'array, come segue:
$array[0] = 'Monday'; ... $array[6] = 'Sunday';
elementi di un array di accesso
elementi di un array di accesso che utilizzano$ variabile + nome + [index] per leggere il formato, gli esempi sono i seguenti:
@sites = qw/google taobao w3big/; print "$sites[0]\n"; print "$sites[1]\n"; print "$sites[2]\n"; print "$sites[-1]\n"; # 负数,反向读取
Il programma precedente, l'uscita è:
google taobao w3big w3big
Indice di campo parte da 0, che è 0 per il primo elemento, il secondo elemento è 1, e così via.
lettura negativa dal retro, -1 è il primo elemento, -2 è il secondo elemento
il numero di serie Array
Perl fornisce una sequenza può essere sotto forma di una matrice di uscita nelformato del valore finale valore iniziale + + ..,esempi sono i seguenti:
#!/usr/bin/perl @var_10 = (1..10); @var_20 = (10..20); @var_abc = (a..z); print "@var_10\n"; # 输出 1 到 10 print "@var_20\n"; # 输出 10 到 20 print "@var_abc\n"; # 输出 a 到 z
<p>执行以上程序,输出结果为:</p> <pre> 1 2 3 4 5 6 7 8 9 10 10 11 12 13 14 15 16 17 18 19 20 a b c d e f g h i j k l m n o p q r s t u v w x y z
dimensioni Array
Contesto è determinata dalla dimensione dello scalare array array. :
@array = (1,2,3); print "数组大小: ",标量 @array,"\n";
Restituisce la lunghezza della matrice è una matrice di dimensione fisica, piuttosto che il numero di elementi, possiamo vedere i seguenti esempi:
#!/uer/bin/perl @array = (1,2,3); $array[50] = 4; $size = @array; $max_index = $#array; print "数组大小: $size\n"; print "最大索引: $max_index\n";
Il programma precedente, l'uscita è:
数组大小: 51 最大索引: 50
Come si può vedere dall'output risultati, gli elementi dell'array sono solo quattro, ma la dimensione della matrice 51.
Aggiunta e rimozione di elementi di un array
Perl fornisce una serie di funzioni utili per aggiungere e rimuovere elementi di un array.
Se nessuna esperienza di programmazione prima di poter chiedere che cosa è la funzione, infatti, prima distampa Usa, che è una funzione di uscita.
La seguente tabella elenca le funzioni comuni di manipolazione matrice:
No. | Tipo e Descrizione |
---|---|
1 | spingere @ARRAY, LISTA L'elenco dei valori nella fine dell'array |
2 | pop @ARRAY Pop l'ultima serie valore e lo restituisce |
3 | spostare @ARRAY Array pop il primo valore e lo restituisce. Il valore di indice della matrice sono sequenzialmente meno uno. |
4 | unshift @ARRAY, LISTA La lista di fronte un array e restituisce il numero di elementi nella nuova matrice. |
Esempi
#!/usr/bin/perl # 创建一个简单是数组 @sites = ("google","w3big","taobao"); print "1. \@sites = @sites\n"; # 在数组结尾添加一个元素 push(@sites, "baidu"); print "2. \@sites = @sites\n"; # 在数组开头添加一个元素 unshift(@sites, "weibo"); print "3. \@sites = @sites\n"; # 删除数组末尾的元素 pop(@sites); print "4. \@sites = @sites\n"; # 移除数组开头的元素 shift(@sites); print "5. \@sites = @sites\n";
Il programma precedente, l'uscita è:
array di taglio
Siamo in grado di tagliare una matrice, e restituisce un nuovo array dopo il taglio:
#!/usr/bin/perl @sites = qw/google taobao w3big weibo qq facebook 网易/; @sites2 = @sites[3,4,5]; print "@sites2\n";
Il programma precedente, l'uscita è:
weibo qq facebook
È necessario specificare un indice valido del valore di indice di matrice può essere negativo dopo un numero positivo, ogni valore dell'indice con le virgole.
Se l'indice è continuo, è possibile utilizzare.. per rappresentare il campo specificato:
#!/usr/bin/perl @sites = qw/google taobao w3big weibo qq facebook 网易/; @sites2 = @sites[3..5]; print "@sites2\n";
Il programma precedente, l'uscita è:
weibo qq facebook
Sostituire gli elementi dell'array
elementi di un array Perl vengono usati in modo intercambiabile nella sintassi della funzione di giunzione () è il seguente:
splice @ARRAY, OFFSET [ , LENGTH [ , LIST ] ]
Descrizione Parametro:
- @ARRAY: Per sostituire l'array.
- OFFSET: posizione di partenza.
- LUNGHEZZA: Sostituire il numero di elementi.
- LIST: Sostituire la lista degli elementi.
I seguenti esempi cominciano a sostituire il sesto elemento della matrice di cinque elementi:
#!/usr/bin/perl @nums = (1..20); print "替换前 - @nums\n"; splice(@nums, 5, 5, 21..25); print "替换后 - @nums\n";
Il programma precedente, l'uscita è:
替换前 - 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 替换后 - 1 2 3 4 5 21 22 23 24 25 11 12 13 14 15 16 17 18 19 20
Converte stringa in un array
Perl converte un array di stringhe utilizzando la sintassi funzione split () è il seguente:
split [ PATTERN [ , EXPR [ , LIMIT ] ] ]
Descrizione Parametro:
- MODELLO: separatore, spazi predefiniti.
- ESPRESSIONE: Specifica il numero di stringhe.
- LIMITE: Se si specifica questo parametro, il numero di elementi nella matrice restituita.
Esempi
#!/usr/bin/perl # 定义字符串 $var_test = "w3big"; $var_string = "www-w3big-com"; $var_names = "google,taobao,w3big,weibo"; # 字符串转为数组 @test = split('', $var_test); @string = split('-', $var_string); @names = split(',', $var_names); print "$test[3]\n"; # 输出 com print "$string[2]\n"; # 输出 com print "$names[3]\n"; # 输出 weibo
Il programma precedente, l'uscita è:
o com weibo
L'array viene convertito in una stringa
Perl nella matrice in una stringa utilizzando la sintassi della funzione join () è il seguente:
join EXPR, LIST
Descrizione Parametro:
- ESPRESSIONE: connettore.
- LIST: lista o un array.
Esempi
#!/usr/bin/perl # 定义字符串 $var_string = "www-w3big-com"; $var_names = "google,taobao,w3big,weibo"; # 字符串转为数组 @string = split('-', $var_string); @names = split(',', $var_names); # 数组转为字符串 $string1 = join( '-', @string ); $string2 = join( ',', @names ); print "$string1\n"; print "$string2\n";
Il programma precedente, l'uscita è:
www-w3big-com google,taobao,w3big,weibo
Ordinamento di un array
sintassi della funzione di ordinamento array Perl usando sort () è il seguente:
sort [ SUBROUTINE ] LIST
Descrizione Parametro:
- SUBROUTINE: specificare le regole.
- LIMIT: lista o un array.
Esempi
#!/usr/bin/perl # 定义数组 @sites = qw(google taobao w3big facebook); print "排序前: @sites\n"; # 对数组进行排序 @sites = sort(@sites); print "排序前: @sites\n";
Il programma precedente, l'uscita è:
排序前: google taobao w3big facebook 排序前: facebook google w3big taobao
Nota: Ordinamento di un array è ordinato in base al valore numerico ASCII. Così abbiamo avuto meglio prima convertito quando ogni elemento della matrice tipo minuscolo prima della cernita.
variabili speciali: $ [
La variabile$ speciali [unprimo indice della matrice, generalmente 0, se$ [impostatosu 1, il primo valore di indice dell'array è 1, il secondo è 2, e così via. Esempi sono i seguenti:
#!/usr/bin/perl # 定义数组 @sites = qw(google taobao w3big facebook); print "网站: @sites\n"; # 设置数组的第一个索引为 1 $[ = 1; print "\@sites[1]: $sites[1]\n"; print "\@sites[2]: $sites[2]\n";
Il programma precedente, l'uscita è:
网站: google taobao w3big facebook @sites[1]: google @sites[2]: taobao
Generalmente si consiglia di non utilizzare la variabile$ speciale [nellanuova versione di Perl, la variabile è obsoleta.
unire serie
Elemento dell'array è una virgola per separare, possiamo anche utilizzare le virgole per unire array, come segue:
#!/usr/bin/perl @numbers = (1,3,(4,5,6)); print "numbers = @numbers\n";
Il programma precedente, l'uscita è:
numbers = 1 3 4 5 6
È anche possibile incorporare più array in un array, e fuse nella matrice principale:
#!/usr/bin/perl @odd = (1,3,5); @even = (2, 4, 6); @numbers = (@odd, @even); print "numbers = @numbers\n";
Il programma precedente, l'uscita è:
numbers = 1 3 5 2 4 6
Selezionare dalla lista
Un elenco può essere usato come un array utilizzando un valore di indice specificato nell'elenco dopo l'elemento specificato può essere letto come segue:
#!/usr/bin/perl $var = (5,4,3,2,1)[4]; print "var 的值为 = $var\n"
Il programma precedente, l'uscita è:
var 的值为 = 1
Allo stesso modo, possiamo utilizzare nella matrice.. per leggere la gamma di elementi specificato:
#!/usr/bin/perl @list = (5,4,3,2,1)[1..3]; print "list 的值 = @list\n";
Il programma precedente, l'uscita è:
list 的值 = 4 3 2