Junio 23, 2018, 10:55:11 pm

Autor Tema: Curso de Perl desde 0 by Vengador de las Sombras  (Leído 19652 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado The X-C3LL

  • Troll Profesional
  • Moderador Global
  • *****
  • Mensajes: 2462
  • Sexo: Masculino
  • Bitches, I have my powers again!
    • Ver Perfil
    • 0V3RL04D 1N TH3 N3T
Curso de Perl desde 0 by Vengador de las Sombras
« en: Agosto 03, 2008, 05:44:00 am »
Curso de Perl desde 0
Por Vengador de las Sombras

  Saludos!

  Incio este curso de perl desde cero con el objetivo de adentrar a la gente en el maravilloso mundo de PERL, un lenguaje extremadamente sencillo, versátil y al que se le puede sacar mucho jugo. Antes que nada hacer una pequeña introducción al curso, diciendo que las extensiones de los archivos con los que vamos a trabajar tienen como extensión .pl . Para poder comenzar el curso, necesitaremos de un intérprete de PERL. En mi caso, os recomiendo utilizar ActivePerl, encontrareis manuales a patadas por Google. Para "ejecutar" nuestro .pl deberemos de situarnos en el directorio donde lo tenemos y teclear:
Citar
Microsoft Windows XP [Versión 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

V3NG4D0R C0MM4ND3R L1N3:    Perl ARCHIVO.pl




  Todos nuestros programas en perl los iniciaremos con una línea que se usa como standar para identificar que se trata de un source en perl (en realidad en máquinas basadas en Unix se utiliza para indicar el lugar del intérprete, así que en Windows puede sobrar, pero siempre es bueno ponerlo para aclarar). La línea en cuestión es:

Código: You are not allowed to view links. Register or Login
#!/usr/bin/perl
  Cuando una línea se inicia con el carácter #, se le indica al intérprete que ignore esa línea. Es usado para introducir comentarios aclaratorios dentro del programa, realizando la misma función que "rem" en batch.

   Bien, lo siguiente que se ve en un lenguaje es cómo imprimir por pantalla líneas de texto. En PERL la función encargada (a la larga veremos otra función más tipo C) es print. Su sintaxis es muy sencilla:

Código: You are not allowed to view links. Register or Login
print "Texto";

  Fijémonos en un detalle fundamental, al acabar cualquier funcion/sentencia siempre debemos de poner ; para indicar que finaliza. Existen funciones de escape indicadas con \letra. Nosotrs las iremos estudiando conforme las necesitemos. Por ahora sólo teneis que aprenderos el salto de línea (que es igual que en el resto de lenguajes de programamción), es \n.


  Entonces un programa simple, el típico Jelou Güorld (como diría Seth) sería algo tipo:

Código: You are not allowed to view links. Register or Login
#!/usr/bin/perl
print "Jelou";
print "\nGuorld";


  Cuando se desea imprimir varias líneas de texto se recurre a print q( TODO EL TEXTO);. Cuando se imprime así, no es necesario recurrir a los caracteres de escape, ya que en el output (lo que sale por pantalla) aparece tal y como lo escribamos. Para que se entienda mejor, aquí dejo la cabecera de un programa que codee la otra noche:

Código: You are not allowed to view links. Register or Login
print q(
=====================================================
            HTTP HEADER F.o.S. Injector v0.0
    Priv8 Edition-Cod3x by Vengador de las Sombras
                          &
               Mace Windu & Chipbios
Gr3tz to: WaesWaes, Plaga, Lutscher, Harakiri, Phonix
=====================================================
);

Si lo probais, veis como aparece el texto centrado y apareciendo los diferentes saltos de líneas



Hasta aquí el capítulo de hoy, el siguiente capítulo veremos las variables.
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login - You are not allowed to view links. Register or Login

Desconectado Hondamena

  • Me das tu IP?
  • *
  • Mensajes: 184
  • Sexo: Masculino
    • Ver Perfil
    • vZack
Re: Curso de Perl desde 0 by Vengador de las Sombras
« Respuesta #1 en: Agosto 03, 2008, 07:00:01 am »
Aquí pongo el link de descargas de activeperl haber si alguien se anima: You are not allowed to view links. Register or Login
« Última modificación: Agosto 03, 2008, 07:02:25 am por Hondamena »
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Desconectado The X-C3LL

  • Troll Profesional
  • Moderador Global
  • *****
  • Mensajes: 2462
  • Sexo: Masculino
  • Bitches, I have my powers again!
    • Ver Perfil
    • 0V3RL04D 1N TH3 N3T
Re: Curso de Perl desde 0 by Vengador de las Sombras
« Respuesta #2 en: Agosto 03, 2008, 07:52:58 am »
Gracias por postear el link!

Empiezo este curso para ir rellenando las pausas del de webshells XD.

Desconectado The X-C3LL

  • Troll Profesional
  • Moderador Global
  • *****
  • Mensajes: 2462
  • Sexo: Masculino
  • Bitches, I have my powers again!
    • Ver Perfil
    • 0V3RL04D 1N TH3 N3T
Re: Curso de Perl desde 0 by Vengador de las Sombras
« Respuesta #3 en: Agosto 03, 2008, 08:39:20 am »
Las variables....


  Si bien voy a intentar apotar a este curso desde cero todo lo que sé sobre variables, cómo usarlas, etc... no lo voy a hacer a saco, puesto que como he dicho este es un curso desde "0" enfocado a NW's en la materia. Es por ello que si voy a saco hablando de variables locales y globales (hablando de variables de ambiente), hashes, arrays y demás seguro que me matais XD  :6:.  Así que a lo largo del curso iremos aumentando progresivamente la dificultad del contenido XD, es decir, que empezemos por lo básico ;) .


  Parto de la base de que como mínimo la gente que está leyendo este tutorial ya habrá visto pseudolenguajes tipo "Batch", y estará familarizado con qué es una variable, así que sin más problemas nos metemos a hablar de ellas :D.

  Las variables en PERL vienen señalizadas con el carácter $ (Como en casi todos los lenguajes, vamos XD). Pueden contener desde strings (Cadenas de caracteres) hasta números con los que operar (las llamadas variables escalares). La ventaja de PERL es que el manejo de variables, en mi opinión, es sencillo, ya que te permite colocarlas en casi cualquier parte del source de nuestro programa, sin necesidad de declararlas desde un inicio, como pasa en otros lenguajes.


  La forma más simple de "setear" (a partir de ahora voy a usar ese término para referirme a introducir un valor a una variable) una variable es colocando el mítico $variable = 5;. Una cosa a tener encuenta para evitar posibles errores, es que las variables en PERL son case-sensitives (creo que se decía así), es decir, son sensibles a mayúsculas y minúsculas. Por ende, no será lo mismo $Var que $VAR, ni que $var.


  Las variables pueden ser utilizadas en operaciones aritméticas de forma simple, usando los caracteres encargados de ello. Las operaciones aritméticas (existen aritméticas y lógicas) que se pueden realizar las dejo en el siguiente cuadro:

OPERACIÓN
CARACTER
Suma
+
Resta
-
División
/
Multiplicación
*
Potencia
**
Módulo
%

Hay más, pero con estos nos apañamos por ahora.


Un ejemplo aclaratorio:

Código: (ejemplo) You are not allowed to view links. Register or Login
#!/usr/bin/perl
# Ejemplo de Aritmética

$var = 1;
$var2 = 3;
$resultado = $var + $var2;
$modulo = $resultado % 2;

print "El resultado de todas las operaciones es:\n\n\n $modulo";

exit(0); # Funcion de finalización

Siendo el output (Salida por consola) esto:

Cita de: Output
V3NG4D0R C0MM4ND3R L1N3:    perl a.pl
El resultado de todas las operaciones es:


 0



  Alejándonos de la aritmética, pero sin abandonar a nuestras amigas las variables, vamos a ver cómo meter cadenas de texto dentro de una variable. Para realizar esto, simplemente debemos de entrecomillar el String a almacenar en nuestra variable. Es decir, quedaría así:

Código: You are not allowed to view links. Register or Login
$texto = "FoS RoolZ!";
 Cabe destacar que se puede interpolar una variable dentro de otra cadena de texto (no confundir con concatenar), es decir, si hacemos algo tal que así:

Código: You are not allowed to view links. Register or Login
$var = "FoS";

$Todo = "$var TeaM Rocks!";
#$todo valdría FoS TeaM Rocks!


En PERL hay existen dos formas de entrecomillación, la vista hasta el momento, usando "contenido" y otra usando las comillas simples, es decir, 'contenido'. La diferencia entre ambas, es que de la segunda forma toma todo de forma "literal", es decir, usando el anterior ejemplo pero con comillas simples:

Código: You are not allowed to view links. Register or Login
$var = "FoS";

$Todo = '$var TeaM Rocks!';
  Si imprimiesemos por pantalla la variable $Todo, el output arrojaría $var TeaM Rocks!.





Bueno, hasta aquí el capítulo de Hoy. Creo que es una buena introducción a las variables, aunque me he dejado en el tintero ciertas cosas, como las variables implícitas $_ , los argumentos y cosas así, pero ya se verán en próximos capítulos.

Cualquier duda, sugerencia, error por mi parte, posteadlo.
« Última modificación: Agosto 29, 2008, 10:35:16 am por vengador de las sombras »

Desconectado The X-C3LL

  • Troll Profesional
  • Moderador Global
  • *****
  • Mensajes: 2462
  • Sexo: Masculino
  • Bitches, I have my powers again!
    • Ver Perfil
    • 0V3RL04D 1N TH3 N3T
Re: Curso de Perl desde 0 by Vengador de las Sombras
« Respuesta #4 en: Agosto 05, 2008, 10:11:15 am »
 En el capítulo anterior ya empezemos a trabajar con variables, en este nuevo capítulo vamos a seguir viendo un poco más del tema de las variables.


   Hasta este momento, la única forma de asignación de variables es colocandolo intrínsecamente dentro del código fuente de nuestro programa. Lo que vamos a hacer a continuación es exponer dos modalidades diferentes de introducir valores en variables, el primero a través del teclado y la segunda a través de "argumentos" que se introducen de forma externa.


   Para introducir un valor a través del teclado se utiliza la expresión <STDIN>. No existe ningún misterio de como hacerlo, puesto que únicamente hay que poner <STDIN> como valor de la variable que deseamos rellenar a través del teclado. O sea, que quedaría algo tipo:

$variable=<STDIN>;


  Como habeis observado, la simplicidad del método implica que no tengamos que expandirnos mucho en la explicación de este tema... Así que simplemente deciros que antes de la asignación de la variable, recomiendo poner un print que indique qué contenido debe de tener la variable:

Código: You are not allowed to view links. Register or Login
print "[?] Edad:\n";
$edad=<STDIN>;
print "[+] Tu edad es $edad"


  Captado el concepto, pasamos a algo más interesante: los argumentos. Los argumentos son variables las cuales tienen todas la misma composición: $ARGV[X]. Donde "x" es un número natural (entero positivo).

  Las variables argumentales ("Argumentos") se pasan al programa a través de la shell, de la siguiente forma:

Perl programa.pl [Argumento 0] [Arguemento 1] .... [Argumento X]

 Cada una de las palabras que se expresan a continuación (y separadas por espacios) del programa son los valores que tomarán las diferentes variables. Las variables se expresan con $ARGV[], colocando entre corchetes el número de argumento (el primer argumento es el 0). Entonces, podemos visualizar el siguiente ejemplo:

Código: You are not allowed to view links. Register or Login
#!/usr/bin/perl
print "Te llamas $ARGV[0] , tienes $ARGV[1] años";
exit(0)

Si invocamos este programa desde línea de comandos:

Citar
Microsoft Windows XP [Versión 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

Fl4mm1ng 0ur Sk1llZ:    perl ejemplo.pl Vengador 16

Las variables asignarán la palabra(0) (vengador) a la variable $ARGV[0], y con el otro argumento igual.

Existe una variable, la cual indica el número de argumentos que hemos introducido, ésta @ARGV. Lógicamente sólo expresará valores enteros positivos.
« Última modificación: Agosto 21, 2008, 03:30:15 pm por vengador de las sombras »

Desconectado The X-C3LL

  • Troll Profesional
  • Moderador Global
  • *****
  • Mensajes: 2462
  • Sexo: Masculino
  • Bitches, I have my powers again!
    • Ver Perfil
    • 0V3RL04D 1N TH3 N3T
Re: Curso de Perl desde 0 by Vengador de las Sombras
« Respuesta #5 en: Agosto 06, 2008, 01:52:56 pm »
Continuemos...

  Vamos a dejar por un tiempo las variables, para entrar en otros temas, pero no nos olvidamos definitivamente de ellas, puesto que ampliaremos más adelante. Hago esto para no agobiaros todo el rato con el mismo tema  newrussian .

  Entonces, lo que tenía pensado hacer hoy es introduciros en las funciones de control de flujo. Estas funciones se encargan de ejecutar un grupo de sentencias cuando se alcanza cierta condición. Las condiciones pueden contener operadores lógicos, como ya veremos más adelante. Algunas de estas funciones son IF (con Elseif en anidamientos, y Else), While, Do-Until, Unless, For y cosas por el estilo. Empezaremos estos días a ver los más simples.


  Para empezar, os explicaré qué es un bucle o loop. Son conjuntos de sentencias que se ejecutan un número de veces definido por una condición, y esta condición es procesada por una sentencia de control de flujo. Existen dos tipos principales de bucles, los finitos y los infinitos.

  Los finitos son aquellos grupos de sentencias que se repiten de forma reiterativa hasta que una condición se vuelve TRUE o FALSE, según se haya definido. Por contraposición, los bucles infinitos son aquellos que se repiten sin parar.


  El primer tipo de sentencia para realizar bucles es Do. La sintaxis de Do es muy sencilla:

Citar
DO {
..................
................
................
(Sentencias)
.....................
........................
} until (condición);

  Traducido al castellano, el código vendría a significar:

"Hacer estas sentencias hasta que pase esto".

Ahora quiero comentaros un tipo de operación aritmética que antes no comenté, los incrementos y decrecimientos. Esta operación aritmética consiste en aumentar o disminuir 1 a 1 una variable que contiene un valor entero. Se expresan de la siguiente forma:

$variable++   Para sumarle 1
$variable--     Para restarle 1

Os explico esto, para proponeros el primer ejemplo sencillito de bucle Do-Until:

Código: You are not allowed to view links. Register or Login
#!/usr/bin/perl
$variable = 0;

do
{
           $variable++
           print "\nLa variable vale $variable";
} until ($variable eq "15");
exit(0);
           

Eq significa "igual a". tambien se puede expresar como ==. Cuando tenga un ratejo continúo con el manual y completo con todos los operadores lógicos y explico cada uno, a parte veremos la primera parte de if (ya que if tiene muuuuuuucha tela que contar, aunque parezca que no.).

Byt3z
« Última modificación: Agosto 21, 2008, 03:31:29 pm por vengador de las sombras »

Desconectado The X-C3LL

  • Troll Profesional
  • Moderador Global
  • *****
  • Mensajes: 2462
  • Sexo: Masculino
  • Bitches, I have my powers again!
    • Ver Perfil
    • 0V3RL04D 1N TH3 N3T
Re: Curso de Perl desde 0 by Vengador de las Sombras
« Respuesta #6 en: Agosto 21, 2008, 09:56:56 am »
Tras un breve periodo sin conexión a internet por problemas ajenos a mí (pvtas líneas y pvta timofónica) podemos seguir con el curso...


  Creo recordar que lo dejemos cuando empecemos a ver las estructuras de control... Hoy vamos a centrar nuestra atención en las estructuras condicionales, usando IF, ELSE, ELSIF y UNLESS.


  El tipo más simple de condición se desarrolla utilizando la sentencia IF, cuyo uso más simplificado es if (condiciones) { Grupo de Sentencias } . Dentro de las condiciones que han de darse para que se ejecute el grupo de sentencias delimitadas por { y }, podemos encontrar dos tipos. Por un lado las condiciones basadas en variables numéricas estrictas, y cuyas operaciones lógicas permitidas son:

==    igual que...
!=     distinto de...
<      menor que...
>      mayor que...
>=    mayor o igual que...
<=    menor o igual que...


Al mismo tiempo, estas condiciones se complementan con otras a través de otras operaciones lógicas, como pueden ser and (&&) y or (||). La operación AND sirve para que dos o más condiciones se tengan que dar, en cambio, la operación lógica OR, implica que si no se cumple una condicion, pero se cumple otra, se puedan ejecutar el grupo de sentencias.  Un ejemplo para asimilar esto, pudiera ser:

Código: You are not allowed to view links. Register or Login
$variable=<STDIN>;
if ($variable > 15 && $variable < 30) {
print "El número está entre 15 y 30";
}
exit(0)

 El otro tipo de condiciones son aquellas cuyas variables no son estrictamente numéricas, sino que pueden estar compuestas por grupos de caracteres alfanuméricos. Para este caso, los operadores a utilizar son:

    - eq   igual que...
    - ne   distinto de...
    - lt     menor que...
    - gt    mayor que...
    - ge   mayor o igual que...
    - le    menor o igual que...


En este caso, con lo que se compare se deberá de poner entrecomillado. Hasta ahora hemos visto cuando la condición que se cumple es "verdadera", pero ¿Y si la condición "no se cumple"?. Para esto disponemos del condicional unless, cuya sintaxis es idéntica al del IF.

  Con IF  podemos tambien comprobar si una variable está definida (o como yo suelo decir "seteada"), para ello el código sería if ($variable){ SENTENCIAS} . Igualmente encontramos el caso contrario, si no está definida una variable debemos de añadir un ! delante de la variable, quedándonos algo tipo: if (!$variable){ grupo de sentencias }. Esto último tambien podemos realizarlo con UNLESS: unless ($variable){ Sentencias}




Bueno hasta aquí el capítulo de hoy, en el siguiente seguiremos viendo IF...
« Última modificación: Agosto 21, 2008, 03:32:12 pm por vengador de las sombras »

Desconectado The X-C3LL

  • Troll Profesional
  • Moderador Global
  • *****
  • Mensajes: 2462
  • Sexo: Masculino
  • Bitches, I have my powers again!
    • Ver Perfil
    • 0V3RL04D 1N TH3 N3T
Re: Curso de Perl desde 0 by Vengador de las Sombras
« Respuesta #7 en: Agosto 26, 2008, 11:59:45 am »
 Sigamos con IF....


Si usasemos únicamente IF como condicional, el programa que generásemos sería demasiado estricto y probablemente contendría bastantes bugs y código basura que aumentarían en bastante el peso. Esto sería debido a que únicamente podemos concretar una condición por cada IF, pero... ¿Y si necesitamos que el flujo se bifurque cuando no se cumpla la condición?.

 Para este caso podemos montar otra estructura de control basada en IF y ELSE. Else va a ser como "Si no se cumple esta condicíón, haz este grupo de sentencias". En cuanto a su sintaxis, es de suma sencillez, veámosla con un ejemplo:

Código: You are not allowed to view links. Register or Login
print "Introduzca su edad";
$edad=<STDIN>;
if ($edad >= 18){
                          print "\nEres Mayor de Edad";
else {
print "\NEres Menor de Edad";
}


Dentro de un IF pueden encontrarse múchos más IF y ELSES.

Bien... pero... y si necesitamos bifurcar un flujo ante tres condiciones diferentes ? Para esta función existen los llamados "anidamientos". Son estructuras que consisten en usar un paso intermedio entre IF y ELSE: elsif. Elsif viene a ser como "Haz esto si la condición de arriba es False y esta es True". Podemos poner tantos elseif como queramos dentro del código fuente:
Código: You are not allowed to view links. Register or Login
if (Condicion){
Setnencias
}
elseif (Condicion){
Sentencias
}
elseif (Condicion){
Sentencias
}
else {
Sentencias
}

De IF todavía quedan cosas que contar, pero lo vamos a dejar aparcado para el próximo día hablar sobre otras estructuras de control

Desconectado kashmir

  • Me das tu IP?
  • *
  • Mensajes: 9
  • Sexo: Masculino
    • Ver Perfil
Re: Curso de Perl desde 0 by Vengador de las Sombras
« Respuesta #8 en: Agosto 27, 2008, 03:33:30 pm »
felicidades vengador de las sombras este manual esta muy bien me esta ayudando bastante a aprender       gracias men ;)

Desconectado anderetxebe

  • Me das tu password?
  • **
  • Mensajes: 256
  • Sexo: Masculino
  • *Ander* is here
    • Ver Perfil
Re: Curso de Perl desde 0 by Vengador de las Sombras
« Respuesta #9 en: Agosto 28, 2008, 04:19:36 pm »
Buenas,

gracias por el manual vengador ;)

Lo seguiré hasta el final ;)

Por cierto, puede que sirvan los dos o me equivoque pero para potenciar no hay que usar : **         ??


salu2
« Última modificación: Agosto 29, 2008, 03:26:28 am por anderetxebe »
<a href="You are not allowed to view links. Register or Login">You are not allowed to view links. Register or Login[/img]</a>

Desconectado The X-C3LL

  • Troll Profesional
  • Moderador Global
  • *****
  • Mensajes: 2462
  • Sexo: Masculino
  • Bitches, I have my powers again!
    • Ver Perfil
    • 0V3RL04D 1N TH3 N3T
Re: Curso de Perl desde 0 by Vengador de las Sombras
« Respuesta #10 en: Agosto 31, 2008, 04:22:58 am »

Efectivamente, error mío, puse ^. En respuesta al MP que me enviastes, voy a avanzar hasta donde se pueda.


Bueno... sigamos por donde lo dejemos....


El último día dije que ibamos a ver alguna otra estructura de control, y eso es lo que haremos. Hoy le toca a while.

While se utiliza para formar estructuras muy simples, cuyo funcionamiento es que se ejecute un grupo de sentencias mientras (while) una condición determinada sea TRUE. Entonces la cosa sería algo tipo:

Código: You are not allowed to view links. Register or Login
while (condicion) {
sentencias a ejecutar
}

Cuando la condición de while se vuelva FALSE, el bucle finalizará y dará paso a las siguientes sentencias que haya por debajo de éste.

Un sencillísmo ejemplo sería:

Código: You are not allowed to view links. Register or Login
while ($variable < 5){
$variable++;
print "\n$variable";
}

 Normalmente while yo lo suelo usar mucho cuando trabajo con sockets. Bueno, otro bucle que es muy usado en PERL (Y en casi todos los lenguajes) es FOR.

La estructura de for es muy simple, for(valor_incial,Valor_final,cambios){ stnencias}

Es muy simple, con un ejemplo se ve claro:

Código: You are not allowed to view links. Register or Login
for ($var=1,$var<=5,$var++){
print "$var\n";
}

¿Simple no? La variable $var va a tomar valor "1", y va a ir aumentando de uno en uno mientras que sea inferior o igual a 5. Una cosa que no se suelen explicar en los manuales, es el uso de next  y last dentro de estas estructuras repititivas.

  Usando IF y NEXT podemos hacer que cuando $var cumpla X condición, no se ejecute el grupo de sentencias, y con if y last, lo que podemos hacer es que se ejecuten las sentencias hasta que se cumpla X condición. Un ejemplo sería:

Código: You are not allowed to view links. Register or Login
for ($var=1,$var<=5,$var++){
if ($var == 2){
  next;
}
print "$var\n";
}

Y este otro:
Código: You are not allowed to view links. Register or Login
for ($var=1,$var<=5,$var++){
if ($var == 2){
  last;
}
print "$var\n";
}


Bueno... hasta aquí la parte de hoy... el próximo día empezaremos a ver el manejo de archivos... byt3z...

Desconectado anderetxebe

  • Me das tu password?
  • **
  • Mensajes: 256
  • Sexo: Masculino
  • *Ander* is here
    • Ver Perfil
Re: Curso de Perl desde 0 by Vengador de las Sombras
« Respuesta #11 en: Agosto 31, 2008, 03:44:41 pm »
Thanks vengador ;)

Sigue así :D

Haber cuando pasamos a sockets que molan :p

Salu2

Desconectado The X-C3LL

  • Troll Profesional
  • Moderador Global
  • *****
  • Mensajes: 2462
  • Sexo: Masculino
  • Bitches, I have my powers again!
    • Ver Perfil
    • 0V3RL04D 1N TH3 N3T
Re: Curso de Perl desde 0 by Vengador de las Sombras
« Respuesta #12 en: Agosto 31, 2008, 03:48:49 pm »

Tengo pensado empezar a ver librerías con los sockets...  primero veremos  el uso de sockets sencillos... Despues de ver el manejo de archivos, me pongo a escribir un poco sobre sockets...

Desconectado The X-C3LL

  • Troll Profesional
  • Moderador Global
  • *****
  • Mensajes: 2462
  • Sexo: Masculino
  • Bitches, I have my powers again!
    • Ver Perfil
    • 0V3RL04D 1N TH3 N3T
Re: Curso de Perl desde 0 by Vengador de las Sombras
« Respuesta #13 en: ſeptiembre 04, 2008, 10:08:31 am »
Lo prometido es deuda... así que aqui traemos el manejo de archivos.



  Para lo que el manejor de archivos, vamos a necesitar de la sentencia open(), la cual usaremos de la siguiente forma:

Citar
open(LOGICO,"indiFISICO);


Lógico hace referencia al soporte lógico que se forma con el archivo, es decir, cada vez que realicemos una operación a LOGICO, se la estaremos haciendo al fichero (que de no existir, lo crearemos). En indi se coloca < si lo que queremos es leer el archivo FISICO, > si queremos crear el archivo FISICO. En caso de usar >, si el fichero FISICO existe, se sobre escribe en él con el último puntero. Despues nos encontramos >> que escribe en el archivo FISICO pero dejando el puntero debajo de lo que ya existía, con lo que no sobreescribimos el archivo.

  Y por último FISICO es el archivo, por ejemplo archivo.txt, index.htm, virus.bat, etc.


Bien ahora ya sabemos como hacer referencia a los archivos, en las distintas formas que vamos a necesitar (lectura y escritura).

Ahora, cuando queramos realizar operaciones con nuestro fichero abierto, tendremos que hacerlos sobre lo que hemos denominado LOGICO. Esta debe de ser una palabra escrita en mayúscula. Cuando terminemos de realizar las operaciones sobre nuestro fichero debemos de cerrarlo, para ello tendremos que usar la función inversa: close(). Tenemos que poner dentro de () el nombre lógico del archivo que estamos manejando, ergo close(LOGICO);.


Pero todo esto está muy bien... Pero... ¿Cómo puedo operar dentro de un fichero?

Sencillo, si abrimos un archivo en modo Lectura, lo único que podremos hacer es leer las lineas que contiene. Para realizar esto podemos valernos de un bucle foreach :

Código: You are not allowed to view links. Register or Login
#!/usr/bin/perl
open(FILE,"<archivo.txt");
@source = <FILE>;
foreach $linea (@source){
print $linea;
}
close(FILE);

Con @source lo que hacemos es volcar el contenido de archivo.txt dentro de este arreglo (ya veremos en otra ocasión que es esto). Despues vamos linea por linea viendo el contenido de archivo.txt, y cada linea queda guardada en $linea y es imprimida por pantalla.


  Este sería un ejemplo muy sencillo para poder leer un fichero. Para escribir dentro de un archivo, sólo tenemos que hacer print al soporte lógico:

Código: You are not allowed to view links. Register or Login
#!/usr/bin/perl
open(FILE,">archivo.txt");
while ($contador >= 5){
$contador++;
print FILE "Nuestra linea numero $contador\n";
}
close(FILE);
exit(1);

Bueno, espero que les haya servido, cualquier dudad, error o sugerencia posteadla

Desconectado anderetxebe

  • Me das tu password?
  • **
  • Mensajes: 256
  • Sexo: Masculino
  • *Ander* is here
    • Ver Perfil
Re: Curso de Perl desde 0 by Vengador de las Sombras
« Respuesta #14 en: ſeptiembre 08, 2008, 03:53:14 pm »
Muy bueno Vengador, mis felicitaciones :D

sigue así que quiero mmmmmmmásssssss... XD

salu2


exclamation
Mail Bomber ->Consctrucción de uno en PERL<- By Vengador de las Sombras

Iniciado por The X-C3LL

8 Respuestas
3090 Vistas
Último mensaje Junio 13, 2008, 07:00:07 pm
por hacker_beginner
exclamation
*** Hackear con CryptCat y Backdorizar *** By Vengador de las Sombras

Iniciado por The X-C3LL

23 Respuestas
13584 Vistas
Último mensaje Agosto 13, 2008, 03:46:40 pm
por joseang
xx
"page_alb.asp" => SQL INJECION [Discovered by Vengador de las Sombras & Plaga]

Iniciado por The X-C3LL

2 Respuestas
1716 Vistas
Último mensaje Mayo 28, 2008, 02:58:26 am
por The X-C3LL
exclamation
Facil acceso a Exploit-DB desde Perl y Shodan API [PERL]

Iniciado por alxr_n3td1srupt

2 Respuestas
1859 Vistas
Último mensaje Enero 31, 2013, 08:41:16 am
por alxr_n3td1srupt
smiley
Curso de visual basic 6.0 como el Curso C/C++ desde cero

Iniciado por Paolita747

2 Respuestas
1787 Vistas
Último mensaje Mayo 31, 2008, 01:56:18 am
por Paolita747
xx
XSS Desde Perl.

Iniciado por JaAViEr

0 Respuestas
1834 Vistas
Último mensaje Marzo 11, 2009, 06:41:00 pm
por JaAViEr
xx
Logearse a Facebook desde Perl o python!

Iniciado por SixP4ck3r

0 Respuestas
1081 Vistas
Último mensaje Febrero 15, 2012, 06:44:08 am
por SixP4ck3r
xx
Seteando cookies para Mozilla Firefox desde Perl

Iniciado por SixP4ck3r

2 Respuestas
1138 Vistas
Último mensaje Abril 17, 2013, 07:05:19 am
por SixP4ck3r
xx
Viejo Curso C++ desde 0

Iniciado por WaesWaes

490 Respuestas
122118 Vistas
Último mensaje Agosto 06, 2013, 07:17:47 pm
por .xAk.
xx
Curso de C# desde 0 - Inscripciones

Iniciado por Mace Windu

25 Respuestas
8715 Vistas
Último mensaje Julio 08, 2008, 02:30:22 am
por Mace Windu