Latest web development tutorials

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