Latest web development tutorials

Perl tableau

Un tableau est une valeur scalaire stockée liste non ordonnée de variables.

@ Le début d'un tableau de variables. éléments de réseau d'accès en utilisant lavariable $ + nom + [index] pour lire le format, les exemples sont les suivants:

#!/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";

Le programme utilise le symbole $ \ pour échapper, alors il est sorti.

Le programme ci-dessus, le résultat est:

$hits[0] = 25
$hits[1] = 30
$hits[2] = 40
$names[0] = google
$names[1] = w3big
$names[2] = taobao

Création d'un tableau

variable tableau avec le début@ symbole, l'élément est entre parenthèses peuvent également être commencer qwdéfinissant des tableaux.

@array = (1, 2, 'Hello');
@array = qw/这是 一个 数组/;

Le deuxième réseau en utilisant leqw // opérateur, qui retourne une liste de chaînes, les éléments du tableau séparés par des espaces.Bien sûr, vous pouvez également utiliser plusieurs lignes pour définir le tableau:

@days = qw/google
taobao
...
w3big/;

Vous pouvez également attribuer un index au tableau, comme suit:

$array[0] = 'Monday';
...
$array[6] = 'Sunday';

éléments du tableau d'accès

éléments de réseau d'accès en utilisant lavariable $ + nom + [index] pour lire le format, les exemples sont les suivants:

@sites = qw/google taobao w3big/;

print "$sites[0]\n";
print "$sites[1]\n";
print "$sites[2]\n";
print "$sites[-1]\n";    # 负数,反向读取

Le programme ci-dessus, le résultat est:

google
taobao
w3big
w3big

L'index du tableau commence à partir de 0, qui est de 0 pour le premier élément, le second élément est égal à 1, et ainsi de suite.

lecture négative de l'inverse, -1 est le premier élément, -2 est le deuxième élément


le numéro de série Array

Perl fournit une séquence peut être sous la forme d'une matrice de sortie dans le format dela valeur finale de la valeur de départ + ..Des exemples sont les suivants:

#!/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

Taille de tableau

Le contexte est déterminé par la taille de la matrice scalaire de la matrice. :

@array = (1,2,3);
print "数组大小: ",标量 @array,"\n";

Renvoie la longueur du tableau est un tableau de taille physique, plutôt que le nombre d'éléments, nous pouvons voir les exemples suivants:

#!/uer/bin/perl

@array = (1,2,3);
$array[50] = 4;

$size = @array;
$max_index = $#array;

print "数组大小:  $size\n";
print "最大索引: $max_index\n";

Le programme ci-dessus, le résultat est:

数组大小:  51
最大索引: 50

Comme on peut le voir à partir de la sortie des résultats, les éléments du tableau ne sont que quatre, mais la taille de la matrice 51.


Ajout et suppression d'éléments du tableau

Perl fournit un certain nombre de fonctions utiles pour ajouter et supprimer des éléments de tableau.

Si aucune expérience de programmation avant que vous pouvez demander quelle est la fonction, en fait, avant que nousimprimons l' utilisation, qui est une fonction de sortie.

Le tableau suivant répertorie les fonctions courantes de manipulation de tableau:

Non. Type et description
1 pousser @TABLEAU, LISTE

La liste des valeurs à la fin du tableau

2 pop @TABLEAU

Pop le dernier tableau de valeurs et le renvoie

3 décaler @TABLEAU

Tableau pop la première valeur et la retourne. La valeur de l'indice de la matrice sont séquentiellement moins un.

4 unshift @TABLEAU, LISTE

La liste en face d'un tableau et renvoie le nombre d'éléments dans le nouveau tableau.

Exemples

#!/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";

Le programme ci-dessus, le résultat est:


tableau de coupe

Nous pouvons couper un tableau, et retourne un nouveau tableau après la coupe:

#!/usr/bin/perl

@sites = qw/google taobao w3big weibo qq facebook 网易/;

@sites2 = @sites[3,4,5];

print "@sites2\n";

Le programme ci-dessus, le résultat est:

weibo qq facebook

Vous devez spécifier un index valide de la valeur de l'indice de tableau peut être négatif après un nombre positif, chaque valeur d'index par des virgules.

Si l'indice est continue, vous pouvez utiliser.. pour représenter la gamme spécifiée:

#!/usr/bin/perl

@sites = qw/google taobao w3big weibo qq facebook 网易/;

@sites2 = @sites[3..5];

print "@sites2\n";

Le programme ci-dessus, le résultat est:

weibo qq facebook

Remplacer les éléments du tableau

éléments du tableau Perl sont utilisés de manière interchangeable dans la syntaxe de la fonction splice () est le suivant:

splice @ARRAY, OFFSET [ , LENGTH [ , LIST ] ]

Description Paramètre:

  • @TABLEAU: Pour remplacer le tableau.
  • OFFSET: position de départ.
  • LONGUEUR: Remplacer le nombre d'éléments.
  • LISTE: Remplacer la liste des éléments.

Les exemples suivants commencent à remplacer le sixième élément du tableau de cinq éléments:

#!/usr/bin/perl

@nums = (1..20);
print "替换前 - @nums\n";

splice(@nums, 5, 5, 21..25); 
print "替换后 - @nums\n";

Le programme ci-dessus, le résultat est:

替换前 - 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

Convertit chaîne en un tableau

Perl vous permet de convertir un tableau de chaînes en utilisant la syntaxe de la fonction split () est la suivante:

split [ PATTERN [ , EXPR [ , LIMIT ] ] ]

Description Paramètre:

  • MOTIF: séparateur, espaces par défaut.
  • EXPR: Indique le nombre de chaînes.
  • LIMITE: Si vous spécifiez ce paramètre, le nombre d'éléments dans le tableau retourné.

Exemples

#!/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

Le programme ci-dessus, le résultat est:

o
com
weibo

La matrice est convertie en une chaîne

Perl dans le tableau à une chaîne en utilisant la syntaxe de la fonction join () est la suivante:

join EXPR, LIST

Description Paramètre:

  • EXPR: Connecteur.
  • LIST: liste ou un tableau.

Exemples

#!/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";

Le programme ci-dessus, le résultat est:

www-w3big-com
google,taobao,w3big,weibo

Tri d'un tableau

Perl tableaux de tri en utilisant sort () syntaxe de la fonction est la suivante:

sort [ SUBROUTINE ] LIST

Description Paramètre:

  • SUBROUTINE: spécifier des règles.
  • LIMITE: liste ou un tableau.

Exemples

#!/usr/bin/perl

# 定义数组
@sites = qw(google taobao w3big facebook);
print "排序前: @sites\n";

# 对数组进行排序
@sites = sort(@sites);
print "排序前: @sites\n";

Le programme ci-dessus, le résultat est:

排序前: google taobao w3big facebook
排序前: facebook google w3big taobao

Note: Tri d'un tableau est trié en fonction de la valeur numérique ASCII. Donc, nous ferions mieux d'abord converti lorsque chaque élément du tableau de tri en minuscules avant le tri.


Variables spéciales: $ [

La variable spéciale$ [un premier indice de la matrice, généralement 0, si nous $ [misà 1, la première valeur de l' indice de la matrice est 1, le second est 2, et ainsi de suite. Des exemples sont les suivants:

#!/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";

Le programme ci-dessus, le résultat est:

网站: google taobao w3big facebook
@sites[1]: google
@sites[2]: taobao

En général , nous ne recommandons pas d' utiliser la variable spéciale$ [dans la nouvelle version de Perl, la variable est obsolète.


Fusionner tableau

Élément du tableau est une virgule pour séparer, nous pouvons aussi utiliser des virgules pour fusionner ensemble, comme suit:

#!/usr/bin/perl

@numbers = (1,3,(4,5,6));

print "numbers = @numbers\n";

Le programme ci-dessus, le résultat est:

numbers = 1 3 4 5 6

Vous pouvez également intégrer plusieurs tableaux dans un tableau, et a fusionné dans le tableau principal:

#!/usr/bin/perl

@odd = (1,3,5);
@even = (2, 4, 6);

@numbers = (@odd, @even);

print "numbers = @numbers\n";

Le programme ci-dessus, le résultat est:

numbers = 1 3 5 2 4 6

Sélectionnez l'élément dans la liste

Une liste peut être utilisée comme un tableau en utilisant une valeur d'index spécifiée dans la liste après l'élément spécifié peut se lire comme suit:

#!/usr/bin/perl

$var = (5,4,3,2,1)[4];

print "var 的值为 = $var\n"

Le programme ci-dessus, le résultat est:

var 的值为 = 1

De même, nous pouvons utiliser dans le tableau.. lire la plage spécifiée d'éléments:

#!/usr/bin/perl

@list = (5,4,3,2,1)[1..3];

print "list 的值 = @list\n";

Le programme ci-dessus, le résultat est:

list 的值 = 4 3 2