Latest web development tutorials

matriz Perl

Una matriz es un valor escalar almacenado lista desordenada de variables.

@ El comienzo de una serie de variables. elementos de la matriz de acceso utilizandola variable $ + nombre + [índice] para leer el formato, los ejemplos son los siguientes:

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

El programa utiliza el símbolo $ \ escapar, por lo que se emite.

El programa anterior, la salida es:

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

Creación de una matriz

variable de matriz con el inicio símbolo@, el elemento está en soportes también se pueden iniciar qwdefinir matrices.

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

La segunda matriz mediante elqw // operador, que devuelve una lista de cadenas, elementos de la matriz separados por espacios.Por supuesto, también se puede utilizar varias líneas para definir la matriz:

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

También puede asignar un índice de la matriz, de la siguiente manera:

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

elementos de la matriz de acceso

elementos de la matriz de acceso utilizandola variable $ + nombre + [índice] para leer el formato, los ejemplos son los siguientes:

@sites = qw/google taobao w3big/;

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

El programa anterior, la salida es:

google
taobao
w3big
w3big

El índice de matriz empieza desde 0, que es 0 para el primer elemento, el segundo elemento es 1, y así sucesivamente.

lectura negativa de lo contrario, -1 es el primer elemento, -2 es el segundo elemento


número de serie matriz

Perl proporciona una secuencia puede ser en forma de una matriz de salida en elformato del valor final valor inicial + + .., losejemplos son los siguientes:

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

tamaño de la matriz

Contexto está determinada por el tamaño de la matriz escalar matriz. :

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

Devuelve la longitud de la matriz es una matriz de tamaño físico, en lugar de la cantidad de elementos, podemos ver los siguientes ejemplos:

#!/uer/bin/perl

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

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

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

El programa anterior, la salida es:

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

Como puede verse a partir de la salida de resultados, los elementos de la matriz son sólo cuatro, pero el tamaño de la matriz 51.


Adición y eliminación de elementos de la matriz

Perl proporciona una serie de funciones útiles para agregar y quitar elementos de la matriz.

Si ninguna experiencia en programación antes puede pedir lo que es la función, de hecho, antes de queel uso de impresión,que es una función de salida.

En la siguiente tabla se enumeran las funciones comunes de manipulación de matriz:

No. Tipo y Descripción
1 empujar @ARRAY, LISTA

La lista de valores en el final de la matriz

2 @ARRAY pop

Pop de la última matriz de valores y lo devuelve

3 cambiar @ARRAY

Array pop el primer valor y lo devuelve. El valor del índice de la matriz son secuencialmente menos uno.

4 unshift @ARRAY, LISTA

La lista delante de una matriz y devuelve el número de elementos en la nueva matriz.

Ejemplos

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

El programa anterior, la salida es:


matriz de corte

Podemos cortar una matriz y devuelve una nueva matriz después del corte:

#!/usr/bin/perl

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

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

print "@sites2\n";

El programa anterior, la salida es:

weibo qq facebook

Es necesario especificar un índice válido del valor de índice de matriz puede ser negativa después de un número positivo, cada valor de índice con comas.

Si el índice es continua, se puede utilizar.. para representar el rango especificado:

#!/usr/bin/perl

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

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

print "@sites2\n";

El programa anterior, la salida es:

weibo qq facebook

Reemplazar elementos de la matriz

elementos de la matriz de Perl se utilizan indistintamente en la sintaxis de la función de empalme () es el siguiente:

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

Descripción de parámetros:

  • @ARRAY: Para reemplazar la matriz.
  • Desplazamiento: la posición inicial.
  • LONGITUD: Reemplazar el número de elementos.
  • LISTA: Reemplazar la lista de elementos.

Los siguientes ejemplos están empezando a reemplazar el sexto elemento de la matriz de cinco elementos:

#!/usr/bin/perl

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

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

El programa anterior, la salida es:

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

Convierte cadena en una matriz

Perl convertirá una matriz de cadenas usando la sintaxis de la función split () es la siguiente:

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

Descripción de parámetros:

  • PATRÓN: separador, espacios predeterminados.
  • EXPR: Especifica el número de cadenas.
  • LÍMITE: Si especifica este parámetro, el número de elementos en la matriz devuelta.

Ejemplos

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

El programa anterior, la salida es:

o
com
weibo

La matriz se convierte en una cadena

Perl en la matriz en una cadena mediante la sintaxis de la función join () es la siguiente:

join EXPR, LIST

Descripción de parámetros:

  • EXPR: Conector.
  • LISTA: lista o matriz.

Ejemplos

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

El programa anterior, la salida es:

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

Ordenación de un conjunto

sintaxis de la función de Perl arrays ordenar utilizando sort () es la siguiente:

sort [ SUBROUTINE ] LIST

Descripción de parámetros:

  • SUBRUTINA: especificar reglas.
  • LÍMITE: lista o matriz.

Ejemplos

#!/usr/bin/perl

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

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

El programa anterior, la salida es:

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

Nota: Ordenación de un conjunto se clasifica según el valor numérico ASCII. Así que será mejor que primero se convierte cuando cada elemento de la matriz especie minúscula antes de la clasificación.


variables especiales: $ [

Las variables$ especiales [unprimer índice de la matriz, generalmente 0, si$ [estableceen 1, el primer valor del índice de la matriz es 1, el segundo es 2, y así sucesivamente. Ejemplos son los siguientes:

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

El programa anterior, la salida es:

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

En general no se recomienda el uso de la variable especial$ [en la nueva versión de Perl, la variable es obsoleta.


combinar matriz

Elemento de la matriz es una coma para separar, también podemos utilizar comas para fusionar matriz, de la siguiente manera:

#!/usr/bin/perl

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

print "numbers = @numbers\n";

El programa anterior, la salida es:

numbers = 1 3 4 5 6

También puede incrustar varias matrices en una matriz, y se fusionó en la matriz principal:

#!/usr/bin/perl

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

@numbers = (@odd, @even);

print "numbers = @numbers\n";

El programa anterior, la salida es:

numbers = 1 3 5 2 4 6

Seleccione el elemento de la lista

Una lista se puede utilizar como una matriz usando un valor de índice especificada en la lista después de que el elemento específico puede obtenerse de la siguiente manera:

#!/usr/bin/perl

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

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

El programa anterior, la salida es:

var 的值为 = 1

Del mismo modo, podemos utilizar en el array.. leer el rango especificado de elementos:

#!/usr/bin/perl

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

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

El programa anterior, la salida es:

list 的值 = 4 3 2