Tableau Perl
Un tableau est une variable de liste non ordonnée qui stocke des valeurs scalaires.
Les variables du tableau commencent par @. Pour accéder aux éléments du tableau, utilisez le format $ + nom de la variable + [valeur d'index] pour lire. L'exemple est le suivant :
#!/usr/bin/perl @hits = (25, 30, 40); @names = ("google", "php", "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";
Dans le programme, le symbole $ est échappé, ce qui permet. il doit être sorti tel quel.
Exécutez le programme ci-dessus, le résultat de sortie est :
$hits[0] = 25 $hits[1] = 30 $hits[2] = 40 $names[0] = google $names[1] = php $names[2] = taobao
Créez un tableau
La variable du tableau commence par le symbole @, et les éléments sont placés entre parenthèses, vous pouvez également définir un tableau commençant par qw.
@array = (1, 2, 'Hello'); @array = qw/这是 一个 数组/;
Le deuxième tableau utilise l'opérateur qw//, qui renvoie une liste de chaînes avec des éléments de tableau séparés par des espaces. Bien entendu, vous pouvez également utiliser plusieurs lignes pour définir un tableau :
@days = qw/google taobao ... php/;
Vous pouvez également attribuer des valeurs au tableau par index, comme suit :
$array[0] = 'Monday'; ... $array[6] = 'Sunday';
Accéder aux éléments du tableau
Pour accéder aux éléments du tableau, utilisez le format $ + nom de la variable + [valeur d'index] à lire. L'exemple est le suivant :
@sites = qw/google taobao php/; print "$sites[0]\n"; print "$sites[1]\n"; print "$sites[2]\n"; print "$sites[-1]\n"; # 负数,反向读取
Exécutez le programme ci-dessus, et le résultat de sortie est :
google taobao php php
array Les valeurs d'index commencent à 0, soit 0 pour le premier élément, 1 pour le deuxième élément, et ainsi de suite.
Les nombres négatifs sont lus dans le sens inverse, -1 est le premier élément, -2 est le deuxième élément
Numéro de séquence du tableau
Perl fournit le formulaire de tableau qui peut être sorti en séquence, le format est valeur de début + .. + valeur de fin , l'exemple est le suivant :
#!/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 du tableau
tableau la taille est donnée par Déterminé par le contexte du scalaire dans le tableau. :
@array = (1,2,3); print "数组大小: ",标量 @array,"\n";
La longueur du tableau renvoie la taille physique du tableau, pas le nombre d'éléments. Nous pouvons voir l'exemple suivant :
#!/uer/bin/perl @array = (1,2,3); $array[50] = 4; $size = @array; $max_index = $#array; print "数组大小: $size\n"; print "最大索引: $max_index\n";
Exécutez le programme ci-dessus, le résultat de sortie est :
数组大小: 51 最大索引: 50
Comme le montre la sortie, il n'y a que quatre éléments du tableau, mais la taille du tableau est de 51.
Ajout et suppression d'éléments de tableau
Perl fournit des fonctions utiles pour ajouter et supprimer des éléments de tableau.
Si vous n'avez aucune expérience en programmation, vous pouvez demander ce qu'est une fonction. En fait, le print que nous avons utilisé auparavant est une fonction de sortie.
Le tableau suivant répertorie les fonctions d'opération couramment utilisées dans les tableaux :
Numéro de série | < th >Type et description|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
1 |
| ||||||||||
2 | <🎜>pop @ARRAY<🎜><🎜>Présente la dernière valeur du tableau et la renvoie <🎜> | ||||||||||
3 | <🎜>shift @ARRAY<🎜><🎜>Insérez la première valeur du tableau et renvoyez-la. La valeur d'index du tableau est également décrémentée de un. <🎜> | ||||||||||
4 | <🎜>unshift @ARRAY, LIST<🎜><🎜>Placez la liste devant le tableau et renvoyez le nouveau tableau le nombre d'éléments. <🎜> |
Instance
#!/usr/bin/perl # 创建一个简单是数组 @sites = ("google","php","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";
exécute le programme ci-dessus et le résultat de sortie est :
Couper le tableau
Nous pouvons couper un tableau et renvoie le nouveau tableau après la coupe :
#!/usr/bin/perl @sites = qw/google taobao php weibo qq facebook 网易/; @sites2 = @sites[3,4,5]; print "@sites2\n";
Exécutez le programme ci-dessus, le résultat de sortie est :
weibo qq facebook
L'index du tableau doit spécifier une valeur d'index valide, qui peut être positive nombre suivi d'un nombre négatif, chaque valeur d'index séparée par des virgules.
S'il s'agit d'un index continu, vous pouvez utiliser .. pour représenter la plage spécifiée :
#!/usr/bin/perl @sites = qw/google taobao php weibo qq facebook 网易/; @sites2 = @sites[3..5]; print "@sites2\n";
Exécutez le programme ci-dessus, le résultat de sortie est :
weibo qq facebook
Remplacer les éléments du tableau
La fonction splice() est utilisée pour remplacer les éléments du tableau en Perl Le format de syntaxe est le suivant :
splice @ARRAY, OFFSET [ , LENGTH [ , LIST ] ]
Description du paramètre :
.@ARRAY : Le tableau à remplacer.
OFFSET : position de départ.
LONGUEUR : Le nombre d'éléments à remplacer.
LISTE : Liste des éléments de remplacement.
L'exemple suivant remplace 5 éléments dans le tableau à partir du 6ème élément :
#!/usr/bin/perl @nums = (1..20); print "替换前 - @nums\n"; splice(@nums, 5, 5, 21..25); print "替换后 - @nums\n";
Exécutez le programme ci-dessus, le résultat de sortie 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
Convertir une chaîne en tableau
Pour convertir une chaîne en tableau en Perl, utilisez la fonction split() Le format de syntaxe est le suivant :
split [ PATTERN [ , EXPR [ , LIMIT ] ] ]
Description du paramètre :
PATTERN : délimiteur, la valeur par défaut est l'espace.
EXPR : Précisez le nombre de chaînes.
LIMIT : Si ce paramètre est spécifié, le nombre d'éléments du tableau est renvoyé.
Instance
#!/usr/bin/perl # 定义字符串 $var_test = "php"; $var_string = "www-php-com"; $var_names = "google,taobao,php,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
exécute le programme ci-dessus et le résultat de sortie est :
o com weibo
Convertir le tableau en chaîne
En Perl, la fonction join() est utilisée pour convertir un tableau en chaîne. Le format de syntaxe est le suivant :
join EXPR, LIST
Description du paramètre :
EXPR : connecteur.
LISTE : Liste ou tableau.
Instance
#!/usr/bin/perl # 定义字符串 $var_string = "www-php-com"; $var_names = "google,taobao,php,weibo"; # 字符串转为数组 @string = split('-', $var_string); @names = split(',', $var_names); # 数组转为字符串 $string1 = join( '-', @string ); $string2 = join( ',', @names ); print "$string1\n"; print "$string2\n";
exécute le programme ci-dessus, le résultat de sortie est :
www-php-com google,taobao,php,weibo
Tri de tableau
Tri de tableau en Perl Utilisez la fonction sort(), le format de syntaxe est le suivant :
sort [ SUBROUTINE ] LIST
Description du paramètre :
SUBROUTINE : Spécifiez la règle.
LIMIT : liste ou tableau.
Instance
#!/usr/bin/perl # 定义数组 @sites = qw(google taobao php facebook); print "排序前: @sites\n"; # 对数组进行排序 @sites = sort(@sites); print "排序前: @sites\n";
exécute le programme ci-dessus et le résultat de sortie est :
排序前: google taobao php facebook 排序前: facebook google php taobao
Remarque : le tri des tableaux est basé sur les valeurs numériques ASCII valeurs. Ainsi, lorsque nous trions le tableau, il est préférable de convertir chaque élément en minuscules avant de trier.
Variables spéciales : $[
Variables spéciales $[ représente la première valeur d'index du tableau, qui est généralement 0. Si on change $[ est défini sur 1, puis la première valeur d'index du tableau est 1, la seconde est 2, et ainsi de suite. L'exemple est le suivant :
#!/usr/bin/perl # 定义数组 @sites = qw(google taobao php facebook); print "网站: @sites\n"; # 设置数组的第一个索引为 1 $[ = 1; print "\@sites[1]: $sites[1]\n"; print "\@sites[2]: $sites[2]\n";
Exécutez le programme ci-dessus et le résultat de sortie est :
网站: google taobao php facebook @sites[1]: google @sites[2]: taobao
Généralement, nous déconseillons d'utiliser la variable spéciale $[. Dans la nouvelle version de Perl, Cette variable est obsolète.
Fusionner des tableaux
Les éléments du tableau sont séparés par des virgules Nous pouvons également utiliser des virgules pour fusionner des tableaux, comme indiqué ci-dessous :
#!/usr/bin/perl @numbers = (1,3,(4,5,6)); print "numbers = @numbers\n";
exécute le programme ci-dessus et le résultat de sortie est :
numbers = 1 3 4 5 6
Vous pouvez également intégrer plusieurs tableaux dans le tableau et les fusionner dans le tableau principal :
#!/usr/bin/perl @odd = (1,3,5); @even = (2, 4, 6); @numbers = (@odd, @even); print "numbers = @numbers\n";
exécute le programme ci-dessus , et le résultat de sortie est : :
numbers = 1 3 5 2 4 6
Sélectionner des éléments de la liste
Une liste peut être utilisée comme un tableau et l'élément spécifié peut être lu en spécifiant la valeur d'index après la liste, comme suit :
#!/usr/bin/perl $var = (5,4,3,2,1)[4]; print "var 的值为 = $var\n"
Exécutez le programme ci-dessus, le résultat de sortie est :
var 的值为 = 1
De même, nous pouvons utiliser .. dans le tableau pour lire les éléments dans la plage spécifiée :
#!/usr/bin/perl @list = (5,4,3,2,1)[1..3]; print "list 的值 = @list\n";
En exécutant le programme ci-dessus, le résultat de sortie est :
list 的值 = 4 3 2