Débuter avec Pe...login
Débuter avec Perl
auteur:php.cn  temps de mise à jour:2022-04-14 16:05:12

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 :

< th >Type et description
Numéro de série
1
序号类型和描述
1push @ARRAY, LIST

将列表的值放到数组的末尾

2pop @ARRAY

弹出数组最后一个值,并返回它

3shift @ARRAY

弹出数组第一个值,并返回它。数组的索引值也依次减一。

4unshift @ARRAY, LIST

将列表放在数组前面,并返回新数组的元素个数。

push @ARRAY, LIST<🎜><🎜>Pousser la valeur de la liste jusqu'à la fin du tableau< 🎜>
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

Site Web PHP chinois