El mejor tutorial de matriz Perl en 2024. En este tutorial podrás aprender Creación de una matriz,elementos de la matriz de acceso,número de serie matriz,tamaño de la matriz,Adición y eliminación de elementos de la matriz,matriz de corte,Reemplazar elementos de la matriz,Convierte cadena en una matriz,La matriz se convierte en una cadena,Ordenación de un conjunto,variables especiales: $ [,combinar matriz,Seleccione el elemento de la lista,
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
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 es. w3big/;
También puede asignar un índice de la matriz, de la siguiente manera:
$array[0] = 'Monday'; es. $array[6] = 'Sunday';
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
Perl proporciona una secuencia puede ser en forma de una matriz de salida en elformato del valor final valor inicial + + es, losejemplos son los siguientes:
#!/usr/bin/perl @var_10 = (1es10); @var_20 = (10es20); @var_abc = (aesz); 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
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.
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. |
#!/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:
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 utilizares para representar el rango especificado:
#!/usr/bin/perl @sites = qw/google taobao w3big weibo qq facebook 网易/; @sites2 = @sites[3es5]; print "@sites2\n";
El programa anterior, la salida es:
weibo qq facebook
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:
Los siguientes ejemplos están empezando a reemplazar el sexto elemento de la matriz de cinco elementos:
#!/usr/bin/perl @nums = (1es20); print "替换前 - @nums\n"; splice(@nums, 5, 5, 21es25); 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
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:
#!/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
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:
#!/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
sintaxis de la función de Perl arrays ordenar utilizando sort () es la siguiente:
sort [ SUBROUTINE ] LIST
Descripción de parámetros:
#!/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.
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.
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
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 arrayes leer el rango especificado de elementos:
#!/usr/bin/perl @list = (5,4,3,2,1)[1es3]; print "list 的值 = @list\n";
El programa anterior, la salida es:
list 的值 = 4 3 2