<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-419794814883688730</id><updated>2011-09-12T22:28:32.160-07:00</updated><category term='hack'/><category term='trucos'/><category term='Revistas'/><category term='SQL'/><category term='descargas'/><category term='Manuales'/><category term='web'/><category term='bugs'/><category term='Start'/><category term='Perl'/><category term='alemania'/><category term='Html'/><category term='leyes'/><title type='text'>Mente Hack</title><subtitle type='html'>Mentes inquietas</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mentehack.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/419794814883688730/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://mentehack.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Goblin</name><uri>http://www.blogger.com/profile/14787519852019904439</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://3.bp.blogspot.com/-lw4uBqYXwew/TjuzPhr7GbI/AAAAAAAAAGE/nB80o443rOw/s220/sonho-de-liberdade.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>11</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-419794814883688730.post-7521642390583385748</id><published>2008-08-21T10:42:00.000-07:00</published><updated>2008-08-21T11:45:40.545-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><category scheme='http://www.blogger.com/atom/ns#' term='Manuales'/><title type='text'>Manual de Perl (IV): Datos Escalares</title><content type='html'>Después de una breve introducción a Perl, abordaremos el aprendizaje de programación en este lenguaje. Cuando escribimos un programa es por una razón: para realizar cálculos, construir una web, hacer búsquedas en archivos... En cualquier caso, lo que se pretende es resolver un problema y, si utilizamos Perl, probablemente dicho problema gira en torno a la manipulación de datos.&lt;br /&gt;&lt;br /&gt;El tipo más básico de datos que normalmente manipula Perl son los datos escalares. El término &lt;span style="font-style: italic;"&gt;datos escalares&lt;/span&gt; se refiere a un solo tipo de datos, pero abarca números y cadenas; sin embargo, por el momento, haremos una distinción entre los dos. Aprenderemos sobre los diferentes tipos de datos y comenzaremos a manejar el concepto de asignación a variables, operadores y conversiones de tipo.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Tipos de datos&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Separaremos los tipos de datos en dos categorías: la primera corresponde a números como 62, 6.2e10 o 7FF. La segunda a cadenas de caracteres como "hello".&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Números&lt;/span&gt;&lt;br /&gt;Desde el punto de vista del usuario, los &lt;span style="font-style: italic;"&gt;números&lt;/span&gt; normalmente se clasifican en dos tipos diferentes:&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Entero&lt;/span&gt;. Es decir, un número que no es fraccionario ni mixto. Definiremos un número entero, básicamente, como un número sin punto decimal, como 63 o -1994. Los números enteros se representan por dígitos en base 10.&lt;/li&gt;&lt;li&gt;De &lt;span style="font-style: italic;"&gt;coma flotante&lt;/span&gt;. Estos son, al contrario de los enteros, los números con punto decimal. Ejemplos de estos números son 63.2 o -1994e20.&lt;/li&gt;&lt;/ul&gt;Estos son los dos tipos básicos, pero también veremos otros dos tipos especiales de números: los octales y los hexadecimales. Los números &lt;span style="font-style: italic;"&gt;octales&lt;/span&gt; se representan con dígitos en base 8 y los &lt;span style="font-style: italic;"&gt;hexadecimales&lt;/span&gt; con dígitos en base 16.&lt;br /&gt;&lt;br /&gt;Al contrario de la mayoría de los lenguajes de programación, en Perl los números enteros y los de coma flotante son intercambiables, simplemente porque el lenguaje no soporta enteros. En este lenguaje todos los números son convertidos a números de coma flotante aunque los ingresemos como enteros, lo cual simplifica mucho la programación, al no tener que preocuparnos por la mezcla de enteros y números decimales cuando se realizan cálculos.&lt;br /&gt;Si por alguna razón necesitamos usar enteros, es posible habilitar un modo de enteros, mediante una acción que debe ser habilitada por el usuario.&lt;br /&gt;Para profundizar más en la manera de operar con enteros, mirad la sección de enteros de la documentación de las bibliotecas raíz incluidas en Perl.&lt;br /&gt;&lt;br /&gt;De todas formas no os preocupéis demasiado por no tener valores verdaderamente enteros. Casi todos tipo de cálculo funciona apropiadamente con números de coma flotante.&lt;br /&gt;&lt;br /&gt;Veamos ahora qué formatos de números puede manejar Perl.&lt;br /&gt;&lt;br /&gt;[Tabla]&lt;br /&gt;&lt;br /&gt;La anotación &lt;span style="font-style: italic;"&gt;e&lt;/span&gt; es el indicador de "potencia de 10". El número 4e20 se lee "4 por 10 a la 20ª potencia". Dos de los formatos de números de la tabla pueden resultarte nuevos, los hexadecimales y octales.&lt;br /&gt;Los números octales se especifican con un 0 inicial. El número del ejemplo, 0543, es un número octal simplemente porque su primer dígito es 0. Debemos recordar, por tanto, que nunca debemos comenzar un valor en base 10 con el número 0, porque en nuestro script se interpretará como octal.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/419794814883688730-7521642390583385748?l=mentehack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mentehack.blogspot.com/feeds/7521642390583385748/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=419794814883688730&amp;postID=7521642390583385748' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/419794814883688730/posts/default/7521642390583385748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/419794814883688730/posts/default/7521642390583385748'/><link rel='alternate' type='text/html' href='http://mentehack.blogspot.com/2008/08/manual-de-perl-iv-datos-escalares.html' title='Manual de Perl (IV): Datos Escalares'/><author><name>Goblin</name><uri>http://www.blogger.com/profile/14787519852019904439</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://3.bp.blogspot.com/-lw4uBqYXwew/TjuzPhr7GbI/AAAAAAAAAGE/nB80o443rOw/s220/sonho-de-liberdade.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-419794814883688730.post-7146998940993213851</id><published>2008-01-02T11:19:00.000-08:00</published><updated>2008-01-02T02:46:09.964-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Manuales'/><category scheme='http://www.blogger.com/atom/ns#' term='Html'/><title type='text'>Manual de HTML (II): Sintaxis</title><content type='html'>HTML es un lenguaje que basa su sintaxis en un elemento&lt;br /&gt;básico que llamamos etiqueta (tag). La etiqueta presenta&lt;br /&gt;normalmente dos partes:&lt;br /&gt;&lt;br /&gt;Una apertura de forma general &lt;span style="font-style: italic;"&gt;&amp;lt;etiqueta&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Un cierre del tipo &lt;span style="font-style: italic;"&gt;&amp;lt;/etiqueta&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Todo lo que esté incluido en el interior de esta etiqueta&lt;br /&gt;sufrirá las modificaciones que caracterizan a la misma. Como&lt;br /&gt;por ejemplo:&lt;br /&gt;&lt;br /&gt;Las etiquetas &lt;span style="font-style: italic;"&gt;&amp;lt;b&amp;gt;&lt;/span&gt; y &lt;span style="font-style: italic;"&gt;&amp;lt;/b&amp;gt;&lt;/span&gt; definen un texto en negrita. Si en nuestro documento HTML escribimos una frase con el siguiente código:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 51, 204);"&gt;&amp;lt;b&amp;gt;Esto está en negrita&amp;lt;/b&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;El resultado será:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Esto está en negrita&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Las etiquetas &lt;span style="font-style: italic;"&gt;&amp;lt;p&amp;gt;&lt;/span&gt; y &lt;span style="font-style: italic;"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt; definen un párrafo. Si en nuestro documento HTML escribimos:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 51, 204);"&gt;&amp;lt;p&amp;gt;Hola, estamos en el párrafo1&amp;lt;/p&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 51, 204);"&gt;&amp;lt;p&amp;gt;Ahora cambiamos de párrafo&amp;lt;/p&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;El resultado sería:&lt;br /&gt;&lt;br /&gt;Hola, estamos en el párrafo 1&lt;br /&gt;&lt;br /&gt;Ahora cambiamos de párrafo&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Partes de un documento HTML&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Además de todo esto, un documento HTML debe estar delimitado por las etiquetas &lt;span style="font-style: italic;"&gt;&amp;lt;html&amp;gt;&lt;/span&gt; y &lt;span style="font-style: italic;"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;.&lt;br /&gt;Dentro de este documento, podemos distinguir dos partes principales:&lt;br /&gt;&lt;br /&gt;La cabecera, delimitada por &lt;span style="font-style: italic;"&gt;&amp;lt;head&amp;gt;&lt;/span&gt; y &lt;span style="font-style: italic;"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt; donde colocaremos etiquetas de índole informativo como por ejemplo el título de nuestra página.&lt;br /&gt;&lt;br /&gt;El cuerpo, delimitado por las etiquetas &lt;span style="font-style: italic;"&gt;&amp;lt;body&amp;gt;&lt;/span&gt; y &lt;span style="font-style: italic;"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;, que será donde colocaremos nuestro texto e imagenes delimitados a su vez por otras etiquetas como las que vimos anteriormente.&lt;br /&gt;&lt;br /&gt;El resultado es un documento con la siguiente estructura:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 51, 204);"&gt;&amp;lt;html&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 51, 204);"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;Etiquetas y contenidos de la cabecera&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;Datos que no aparecen en nuestra página pero que son importantes para&lt;br /&gt;catalogarla: Título, palabras clave, etc.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 51, 204);"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 51, 204);"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;Etiquetas y contenido del cuerpo&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;Parte del documento que será mostrada por el navegador: Textos e imágenes&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 51, 204);"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 51, 204);"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Las mayúsculas o minúsculas son indiferentes al escribir las etiquetas&lt;br /&gt;&lt;br /&gt;Las etiquetas pueden ser escritas con cualquier tipo de combinación entre mayúsculas y minúsculas. Es decir, &amp;lt;HTML&amp;gt; o &amp;lt;HtMl&amp;gt; son la misma etiqueta. Sin embargo, es aconsejable acostumbrarse a escribirlas en minúscula ya que otras tecnologías que pueden convivir con nuestro HTML (XML por ejemplo) no son tan permisivas y nunca está mal tener buenos hábitos desde el principio para evitar fallos triviales en el futuro.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/419794814883688730-7146998940993213851?l=mentehack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mentehack.blogspot.com/feeds/7146998940993213851/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=419794814883688730&amp;postID=7146998940993213851' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/419794814883688730/posts/default/7146998940993213851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/419794814883688730/posts/default/7146998940993213851'/><link rel='alternate' type='text/html' href='http://mentehack.blogspot.com/2008/01/manual-de-html-ii-sintaxis.html' title='Manual de HTML (II): Sintaxis'/><author><name>Goblin</name><uri>http://www.blogger.com/profile/14787519852019904439</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://3.bp.blogspot.com/-lw4uBqYXwew/TjuzPhr7GbI/AAAAAAAAAGE/nB80o443rOw/s220/sonho-de-liberdade.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-419794814883688730.post-621932623851682077</id><published>2007-11-14T11:28:00.000-08:00</published><updated>2007-11-14T02:32:34.930-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Manuales'/><category scheme='http://www.blogger.com/atom/ns#' term='Html'/><title type='text'>Manual de HTML (I): Introducción</title><content type='html'>En este artículo explicaremos lo primero que debes saber sobre HTML: Historia, objetivos y conocimientos básicos para ir fijando unas bases.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;¿Qué es HTML?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;HTML es el acrónimo inglés de HyperText Markup Language, que se traduce al español como Lenguaje de Marcas Hipertextuales.&lt;br /&gt;Es el lenguaje con el que se escriben las páginas web. Éstas pueden ser vistas mediante un tipo de aplicación llamada navegador (browser). Podemos decir entonces que el HTML es el lenguaje usado por los navegadores para mostrar las páginas web al usuario, siendo hoy en día la interfaz más extendida en la red.&lt;br /&gt;&lt;br /&gt;Este lenguaje nos permite aglutinar textos, imágenes y audio, y combinarlo a nuestro gusto. Es aquí donde está su ventaja frente a un simple documento de texto, el HTML nos permite introducir referencias a otras páginas mediante hipervínculos.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Evolución&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;El lenguaje HTML se creó en un principio como objeto de divulgación. Sin embargo, no se pensó que la web llegaría a ser un área de ocio con carácter multimedia, de modo que, el HTML no podía dar respuesta a todos los posibles usos que se le daría posteriormente y a todo el colectivo de gente que lo utiliza actualmente. Ante este deficiente planteamiento, con el tiempo se fueron incorporando modificaciones, distintas revisiones del lenguaje HTML.&lt;br /&gt;&lt;br /&gt;Esta evolución tan anárquica del lenguaje, trajo toda una serie de inconvenientes y deficiencias que tuvieron que ser superadas con la introducción de otras tecnologías accesorias capaces de organizar, optimizar y automatizar el funcionamiento de la web. Ejemplos conocidos son CSS, JavaSript y otros. Más adelante veremos en que consisten algunos de ellos.&lt;br /&gt;&lt;br /&gt;Otro de los problemas que acompañan al HTML es la diversidad de navegadores presentes en el mercado, que no son capaces de interpretar el mismo código de forma unificada. Esto nos obliga a, una vez creada la página, comprobar que esta puede ser vista correctamente en todos los navegadores, o por lo menos, en los más utilizados.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Herramientas&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Además del navegador necesario para ver los resultados de nuestro trabajo, necesitamos otra herramienta capaz de crear la página en si. Un fichero HTML (una página) no es más que un texto. Por eso para desarrollar en HTML necesitamo un editor de textos.&lt;br /&gt;&lt;br /&gt;Cualquier simple editor de texto nos sirve: vi, emacs, kedit, gedit, notepad...). No obstante, hay que tener cuidado con algunos editores más complejos como Wordpad o Microsoft Word, pues introducen código propio al guardar las páginas y nos puede dar problemas.&lt;br /&gt;&lt;br /&gt;Existen otros tipos de editores específicos para la creación de páginas web, que ofrecen muchas facilidades que nos permitem aumentar nuestra productividad. Sin embargo al principio es aconsejable utilizar una herramienta lo más simple posible para poder prestar la máxima atención a nuestro código y familiarizarnos con él. Más adelante ganaremos tiempo utilizando editores más avanzados.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Lo básico&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Siendo así, una página es un archivo que contiene el código HTML en forma de texto. Estos archivos tienen extensión .html o .htm. De modo que cuando desarrollemos en HTML, lo haremos con un editor de texto e guardaremos nuestro trabajo con extensión .html, por ejemplo, mipagina.html.&lt;br /&gt;&lt;br /&gt;Consejo: Utiliza siempre la misma extensión en tus archivos HTML. Así evitarás confundirte al escribir los nombres de tus ficheros unas veces con .html y otras con .htm. Si además trabajamos en un proyecto en equipo, es más importante aún estar de acuerdo en la misma extensión, nos ahorraremos problemas al crear enlaces entre distintas páginas, por ejemplo.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Y esto es todo por ahora, en el próximo artículo empezaremos a ver la sintaxis del lenguaje.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/419794814883688730-621932623851682077?l=mentehack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mentehack.blogspot.com/feeds/621932623851682077/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=419794814883688730&amp;postID=621932623851682077' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/419794814883688730/posts/default/621932623851682077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/419794814883688730/posts/default/621932623851682077'/><link rel='alternate' type='text/html' href='http://mentehack.blogspot.com/2007/11/manual-de-html-i-introduccin.html' title='Manual de HTML (I): Introducción'/><author><name>Goblin</name><uri>http://www.blogger.com/profile/14787519852019904439</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://3.bp.blogspot.com/-lw4uBqYXwew/TjuzPhr7GbI/AAAAAAAAAGE/nB80o443rOw/s220/sonho-de-liberdade.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-419794814883688730.post-6336273510214534077</id><published>2007-10-17T03:13:00.000-07:00</published><updated>2007-10-17T03:18:55.094-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='descargas'/><category scheme='http://www.blogger.com/atom/ns#' term='Revistas'/><category scheme='http://www.blogger.com/atom/ns#' term='hack'/><title type='text'>Todas las revistas de HackxCrack en PDF</title><content type='html'>Gracias a &lt;b&gt;&lt;a href="http://foro.elhacker.net/index.php?action=profile;u=195881" title="Ver perfil de o_O_o"&gt;o_O_o&lt;/a&gt; &lt;/b&gt;aquí tenéis todos los números de la revista de seguridad HackxCrack en PDF.&lt;br /&gt;Publicado originalmente en el &lt;a href="http://foro.elhacker.net/index.php/topic,150448.0.html"&gt;Foro de ElHacker&lt;/a&gt;. En el hilo también tenéis los enlaces para bajarlo por rapidshare.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;ed2k://|file|Hack_X_Crack_n21.pdf|25847790|94DE85F7602271C4F72503E028F8A8B3|/&lt;br /&gt;ed2k://|file|Hack_X_Crack_n25.pdf|41271983|AEADCCC1D31BC0CF00E54D259D79A4DF|/&lt;br /&gt;ed2k://|file|Hack_X_Crack_n06.pdf|1257996|54DF3C34C335B5BBB01C41EAEEFB87E6|/&lt;br /&gt;ed2k://|file|Hack_X_Crack_n19.pdf|6981111|29325C7C5C62B557BE9E95A5D7D3A843|/&lt;br /&gt;ed2k://|file|Hack_X_Crack_n17.pdf|5114085|0595DDC0D846169531E6318C5DF3B3D8|/&lt;br /&gt;ed2k://|file|Hack_X_Crack_n02.pdf|1341157|5412B4D18C3AF8DF6CBC5879678AA0D2|/&lt;br /&gt;ed2k://|file|Hack_X_Crack_n07.pdf|4570139|48BE155CD70F71BC0FA7403568FB50B4|/&lt;br /&gt;ed2k://|file|Hack_X_Crack_n05.pdf|4296873|A149CFA45B4CE128E1F350344D2A46A5|/&lt;br /&gt;ed2k://|file|Hack_X_Crack_n01.pdf|1114673|D3CEDCB5A4DA35A8B479B4896A570E7A|/&lt;br /&gt;ed2k://|file|Hack_X_Crack_n24.pdf|25978834|290F625A9FF67E1770A678E09EA93AD0|/&lt;br /&gt;ed2k://|file|Hack_X_Crack_n15.pdf|4737783|4921293CBCF4E8BAFDD9FBCE7E810352|/&lt;br /&gt;ed2k://|file|Hack_X_Crack_n04.pdf|3940670|3A5AE58A18565CC30E743F3E2A64ECD7|/&lt;br /&gt;ed2k://|file|Hack_X_Crack_n08.pdf|3053864|66478D857FB39EC88F244926CE004E03|/&lt;br /&gt;ed2k://|file|Hack_X_Crack_n09.pdf|3635649|9587BF6327320E3EAA0DF7EC9EC974EE|/&lt;br /&gt;ed2k://|file|Hack_X_Crack_n18.pdf|4530052|7531CFBE11877B3378A1CAF0B21C17A0|/&lt;br /&gt;ed2k://|file|Hack_X_Crack_n03.pdf|1715432|FFE5C5D66AAE17E3EAB9E87768F3F2E6|/&lt;br /&gt;ed2k://|file|Hack_X_Crack_n20.pdf|19593314|F2D8DB869DD25A9E3E4B37D0817D3920|/&lt;br /&gt;ed2k://|file|Hack_X_Crack_n23.pdf|21830083|E7248B9736A8A2F97AE9E1FB461F85D0|/&lt;br /&gt;ed2k://|file|Hack_X_Crack_n11.pdf|4012794|B2F2079346CC4A517FA1B9EA18FE0567|/&lt;br /&gt;ed2k://|file|Hack_X_Crack_n30.pdf|68926500|8CA6BD47A1D178EC71D764BB4A7C11CB|/&lt;br /&gt;ed2k://|file|Hack_X_Crack_n28.pdf|149021292|0024EDCF931DB5AD6BCB7AE83B813617|/&lt;br /&gt;ed2k://|file|Hack_X_Crack_n10.pdf|6148136|D0ABF9464DB71AD5CCA886E3AE30B972|/&lt;br /&gt;ed2k://|file|Hack_X_Crack_n14.pdf|5770210|26CC32162040CF20390820DF27500A85|/&lt;br /&gt;ed2k://|file|Hack_X_Crack_n13.pdf|8362464|D8D937A6AB2799FDF5790D940476FC54|/&lt;br /&gt;ed2k://|file|Hack_X_Crack_n26.pdf|24297605|80DBDF8243949C7611BA61653B0BD7E4|/&lt;br /&gt;ed2k://|file|Hack_X_Crack_n16.pdf|6489668|546F174D5E7C563586614DD9FC1B8B21|/&lt;br /&gt;ed2k://|file|Hack_X_Crack_n29.pdf|20416244|18782248B05FCDB4B336B74B997BDEF9|/&lt;br /&gt;ed2k://|file|Hack_X_Crack_n27.pdf|21984851|DBDE90335DE8AA0B6842C93326DDB648|/&lt;br /&gt;ed2k://|file|Hack_X_Crack_n22.pdf|41276310|86075C1F24B073F3C44B262A3F4EB51E|/&lt;br /&gt;ed2k://|file|Hack_X_Crack_n12.pdf|4095946|46709E1E78E3B76EB1DEC254175A2F72|/&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/419794814883688730-6336273510214534077?l=mentehack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mentehack.blogspot.com/feeds/6336273510214534077/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=419794814883688730&amp;postID=6336273510214534077' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/419794814883688730/posts/default/6336273510214534077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/419794814883688730/posts/default/6336273510214534077'/><link rel='alternate' type='text/html' href='http://mentehack.blogspot.com/2007/10/todas-las-revistas-de-hackxcrack-en-pdf.html' title='Todas las revistas de HackxCrack en PDF'/><author><name>Goblin</name><uri>http://www.blogger.com/profile/14787519852019904439</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://3.bp.blogspot.com/-lw4uBqYXwew/TjuzPhr7GbI/AAAAAAAAAGE/nB80o443rOw/s220/sonho-de-liberdade.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-419794814883688730.post-1100312554487374378</id><published>2007-08-26T19:17:00.000-07:00</published><updated>2008-08-21T07:48:21.857-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><category scheme='http://www.blogger.com/atom/ns#' term='Manuales'/><title type='text'>Manual de Perl (III): Primer programa</title><content type='html'>Ahora que ya tenemos una plantilla y algún conocimiento básico del interprete de Perl vamos a empezar a programar.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Script Hello World&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Empezaremos con el programa con el que empiezan el 90% de los programadores de Perl, el "&lt;span style="font-style: italic;"&gt;Hello World!&lt;/span&gt;". La idea es simple: lograr que imprima esa frase por pantalla.&lt;br /&gt;En este programa utilizamos una función integrada llamada &lt;span style="font-weight: bold;"&gt;print&lt;/span&gt;(), que envía salidas a una localización específica. En este caso dicha localización es la &lt;span style="font-style: italic;"&gt;salida estándar&lt;/span&gt; (&lt;span style="font-weight: bold;"&gt;STDOUT&lt;/span&gt;), es decir, la pantalla.&lt;br /&gt;&lt;br /&gt;Para comenzar tomaremos la plantilla y la rellenaremos con nuestra información, como nombre, versión, fecha, autor y descripción. Una vez tengamos esto guardaremos el archivo como &lt;span style="font-style: italic;"&gt;Hello.pl&lt;/span&gt;. Este es un programa muy simple, sólo contiene una línea de código.&lt;br /&gt;&lt;span style="color: rgb(102, 51, 102); font-weight: bold;font-family:georgia;" &gt;#!/usr/bin/perl -w&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 51, 102); font-weight: bold;"&gt;#--------------------&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 51, 102); font-weight: bold;"&gt;#Script Name: Hello.pl&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 51, 102); font-weight: bold;"&gt;#Script Version: 1.0&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 102); font-weight: bold;"&gt;#Date: 26.08.2007&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 102); font-weight: bold;"&gt;#Author: goblin&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 51, 102); font-weight: bold;"&gt;#Description: Imprime "Hello World!" en pantalla&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 102); font-weight: bold;"&gt;#Revision History:&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 51, 102); font-weight: bold;"&gt;#        1.0/&lt;/span&gt;&lt;date style="color: rgb(102, 51, 102); font-weight: bold;"&gt;: original version&lt;/date&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 102); font-weight: bold;"&gt;#--------------------&lt;br /&gt;&lt;br /&gt;print "Hello World!\n";&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 51, 102);"&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;En próximos artículos explicaremos el caracter &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;" &gt;\n&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;, junto con otros como él. Representa un caracter de salto de línea y hace que el cursor se ponga en la siguiente línea al ejecutar el programa. Para ver la diferencia probad con él y sin él.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;Ahora, para ejecutar el programa, debemos hacer lo siguiente:&lt;/span&gt;&lt;br /&gt;&lt;ul  style="color: rgb(0, 0, 0);font-family:arial;"&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;UNIX&lt;/span&gt;: Antes de nada debemos hacer el fichero ejecutable. Esto se hace con &lt;span style="font-weight: bold;"&gt;chmod 755 Hello.pl&lt;/span&gt; o &lt;span style="font-weight: bold;"&gt;chmod +x Hello.pl&lt;/span&gt;. Para más información sobre &lt;span style="font-style: italic;"&gt;chmod&lt;/span&gt; teclea &lt;span style="font-weight: bold;"&gt;man chmod&lt;/span&gt;. Ahora podremos ejecutarlo con &lt;span style="color: rgb(102, 51, 102); font-weight: bold;"&gt;./Hello.pl&lt;/span&gt;.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Windows&lt;/span&gt;: &lt;span style="color: rgb(102, 51, 102); font-weight: bold;"&gt;perl Hello.pl&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Mac OS&lt;/span&gt;: Arrastrar el archivo &lt;span style="font-style: italic;"&gt;Hello.pl&lt;/span&gt; y soltarlo sobre el icono MacPerl, después seleccionar &lt;span style="font-weight: bold;"&gt;Run Hello.pl&lt;/span&gt; desde el menú Script.&lt;/li&gt;&lt;/ul&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;Los que programéis en otros lenguajes habréis notado que no usamos paréntesis () con la función "print()". En Perl se pueden usar o no, a nuestra elección.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;Ahora que ya tenemos nuestro primer programa vamos a modificarlo para que sea un poco más interesante. Haremos un script que nos pregunte el nombre, procese la respuesta y devuelva un resultado por pantalla.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;En este caso utilizaremos una nueva función llamada &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;" &gt;chomp&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;(), que quita un caracter de nueva línea al final de una cadena. Al aceptar la entrada de datos desde la línea de comandos, el (caracter de) retorno que pulsa el usuario también se almacena en la cadena. Con el uso de chomp, eliminamos ese caracter extra de nueva línea y nos centramos solamente en los datos alfanuméricos ingresados.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;Perl también tiene una función llamada &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;" &gt;chop&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;() que quita el último caracter de una cadena. A diferencia de &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(0, 0, 0);font-family:arial;" &gt;chomp()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;, &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(0, 0, 0);font-family:arial;" &gt;chop()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt; elimina cualquier caracter, sea cual sea, mientras que &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(0, 0, 0);font-family:arial;" &gt;chomp()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt; sólo elimina si es un caracter de nueva línea. Por lo que siempre que necesitemos eliminar únicamente un caracter de nueva línea es más seguro utilizar &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(0, 0, 0);font-family:arial;" &gt;chomp()&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;Lo primero será obtener los datos del usuario. La manera de hacer esto es imprimir algún texto en pantalla que pida el nombre y luego leer lo que el usuario introduce, guardándolo en una variable. A esta información, que es leída a través de la &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(0, 0, 0);font-family:arial;" &gt;entrada estándar&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt; (&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;font-family:arial;" &gt;STDIN&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;), se le puede aplicar fácilmente la función chomp. Como esta información está en una variable, también es fácil reutilizar dicha variable para nuestra instrucción de impresión.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;span&gt;&lt;span style="font-weight: bold; color: rgb(102, 51, 102);font-family:courier new;" &gt;# !/usr/bin/perl&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(102, 51, 102);font-family:courier new;" &gt;#-----------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(102, 51, 102);font-family:courier new;" &gt;# Script Name: Hello.pl&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(102, 51, 102);font-family:courier new;" &gt;# Script Version: 2.0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(102, 51, 102);font-family:courier new;" &gt;# Date: 26.08.2007&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(102, 51, 102);font-family:courier new;" &gt;# Author: goblin&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(102, 51, 102);font-family:courier new;" &gt;# Description: Prompts user for name, strips of newline character&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(102, 51, 102);font-family:courier new;" &gt;# and prints " Hello &lt;/span&gt;&lt;name&gt;&lt;span style="font-weight: bold; color: rgb(102, 51, 102);font-family:courier new;" &gt;!" screen where name = the text entered.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(102, 51, 102);font-family:courier new;" &gt;# Revision History:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(102, 51, 102);font-family:courier new;" &gt;#        1.0: original version&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(102, 51, 102);font-family:courier new;" &gt;#        2.0: added prompt for user's name and returned text based on it.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(102, 51, 102);font-family:courier new;" &gt;#-----------------&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(102, 51, 102);font-family:courier new;" &gt;# ask user for name&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(102, 51, 102);font-family:courier new;" &gt;print "What is your name? ";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(102, 51, 102);font-family:courier new;" &gt;$input = &lt;stdin&gt;&lt;/span&gt;&lt;stdin&gt;&lt;span style="font-weight: bold; color: rgb(102, 51, 102);font-family:courier new;" &gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(102, 51, 102);font-family:courier new;" &gt;# remove newline character&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(102, 51, 102);font-family:courier new;" &gt;chomp($input);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(102, 51, 102);font-family:courier new;" &gt;# print results to page&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(102, 51, 102);font-family:courier new;" &gt;print "Hello $input!\n";&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/stdin&gt;&lt;/name&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 51, 102); font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: normal;font-family:arial;" &gt;Vemos que es posible utilizar &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(0, 0, 0); font-weight: normal;font-family:arial;" &gt;$input&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: normal;font-family:arial;" &gt; dentro de las comillas de la función print.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: normal;font-family:arial;" &gt;Si hubiéramos usado comillas simples habría enviado "$input" literalmente a la pantalla.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: normal;font-family:arial;" &gt;Ahora probad vuestro programa y si tenéis alguna duda dejadla en los comentarios.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: normal;font-family:courier new;" &gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-size:85%;"&gt;Artículos relacionados:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: normal;font-family:arial;font-size:85%;"  &gt;&lt;a href="http://mentehack.blogspot.com/2007/08/manual-de-perl-introduccin.html"&gt;Manual de Perl: Introducción&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: normal;font-family:arial;font-size:85%;"  &gt;&lt;a href="http://mentehack.blogspot.com/2007/08/manual-de-perl-ii-antes-del-cdigo.html"&gt;Manual de Perl (II): Antes del código&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;a href="http://mentehack.blogspot.com/2007/08/manual-bsico-de-sql-i-introduccin.html"&gt;&lt;span style="color: rgb(102, 51, 102); font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: normal;font-family:arial;font-size:85%;"  &gt;Manual básico de SQL (I): Introducción&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left; font-family: arial; font-weight: normal;"&gt;&lt;pre&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/419794814883688730-1100312554487374378?l=mentehack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mentehack.blogspot.com/feeds/1100312554487374378/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=419794814883688730&amp;postID=1100312554487374378' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/419794814883688730/posts/default/1100312554487374378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/419794814883688730/posts/default/1100312554487374378'/><link rel='alternate' type='text/html' href='http://mentehack.blogspot.com/2007/08/manual-de-perl-iii-primer-programa.html' title='Manual de Perl (III): Primer programa'/><author><name>Goblin</name><uri>http://www.blogger.com/profile/14787519852019904439</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://3.bp.blogspot.com/-lw4uBqYXwew/TjuzPhr7GbI/AAAAAAAAAGE/nB80o443rOw/s220/sonho-de-liberdade.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-419794814883688730.post-5864611046219591883</id><published>2007-08-23T09:24:00.000-07:00</published><updated>2007-08-26T05:05:11.230-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Manuales'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>Manual básico de SQL (I): Introducción</title><content type='html'>Al igual que con el Manual de Perl, voy a iniciar una serie de artículos para conocer el lenguaje de bases de datos SQL. Es un manual muy básico dirigido a quien no tenga conocimientos sobre él o unos conocimientos muy básicos. Agradezco cualquier tipo de sugerencia o corrección.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Introducción&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SQL&lt;/span&gt; es el acrónimo de &lt;span style="font-style: italic; font-weight: bold;"&gt;Structured Query Language&lt;/span&gt;, un lenguaje estándar de comunicación de bases de datos ampliamente utilizado. Algunas de sus características son la economía de tiempo, su flexibilidad y seguridad en el mantenimiento de datos.&lt;br /&gt;&lt;br /&gt;Casi todos los sistemas de gestión de bases de datos relacionales modernos  como &lt;span style="font-style: italic;"&gt;MySQL, MS SQL Server, Microsoft Access, MSDE, Oracle, DB2, Sybase, Postgres e Informix&lt;/span&gt; utilizan SQL como lenguaje estándar.&lt;br /&gt;A pesar de ser utilizado por los principales &lt;a href="http://es.wikipedia.org/wiki/Sistema_administrador_de_bases_de_datos_relacionales"&gt;RDBMS&lt;/a&gt;, cada uno de ellos implementa funciones específicas que no tienen que funcionar necesariamente en los demás.&lt;br /&gt;&lt;br /&gt;En este manual explicaremos los comandos de SQL más comunes y como aplicarlos sobre las bases de datos más conocidas.&lt;br /&gt;&lt;br /&gt;Funciones definidas definidas en el estándar SQL:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;SELECT&lt;/li&gt;&lt;li&gt;INSERT&lt;/li&gt;&lt;li&gt;WHERE&lt;/li&gt;&lt;li&gt;UPDATE&lt;/li&gt;&lt;li&gt;DELETE&lt;/li&gt;&lt;li&gt;CREATE&lt;/li&gt;&lt;li&gt;ALTER&lt;/li&gt;&lt;li&gt;DROP&lt;/li&gt;&lt;li&gt;DISTINCT&lt;/li&gt;&lt;li&gt;ORDER BY&lt;/li&gt;&lt;li&gt;GROUP BY&lt;/li&gt;&lt;li&gt;SUM&lt;/li&gt;&lt;li&gt;MAX&lt;/li&gt;&lt;li&gt;MIN&lt;/li&gt;&lt;li&gt;AVG&lt;/li&gt;&lt;li&gt;JOIN&lt;/li&gt;&lt;li&gt;UNION&lt;/li&gt;&lt;li&gt;SUBQUERY&lt;/li&gt;&lt;li&gt;CONCATENACIÓN&lt;/li&gt;&lt;li&gt;NVL&lt;/li&gt;&lt;li&gt;BETWEEN&lt;/li&gt;&lt;li&gt;IN&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;Artículos relacionados:&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;a href="http://mentehack.blogspot.com/2007/08/manual-de-perl-introduccin.html"&gt;Manual de Perl: Introducción&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/419794814883688730-5864611046219591883?l=mentehack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mentehack.blogspot.com/feeds/5864611046219591883/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=419794814883688730&amp;postID=5864611046219591883' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/419794814883688730/posts/default/5864611046219591883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/419794814883688730/posts/default/5864611046219591883'/><link rel='alternate' type='text/html' href='http://mentehack.blogspot.com/2007/08/manual-bsico-de-sql-i-introduccin.html' title='Manual básico de SQL (I): Introducción'/><author><name>Goblin</name><uri>http://www.blogger.com/profile/14787519852019904439</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://3.bp.blogspot.com/-lw4uBqYXwew/TjuzPhr7GbI/AAAAAAAAAGE/nB80o443rOw/s220/sonho-de-liberdade.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-419794814883688730.post-7240841003426684424</id><published>2007-08-23T01:46:00.000-07:00</published><updated>2007-08-23T02:13:40.791-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='alemania'/><category scheme='http://www.blogger.com/atom/ns#' term='leyes'/><category scheme='http://www.blogger.com/atom/ns#' term='hack'/><title type='text'>Ley alemana ilegaliza herramientas de seguridad</title><content type='html'>Alemania es el primer país Europeo en introducir leyes más severas en este campo, leyes que prevendrán (o eso cree el gobierno) actividades hacker. La llamada &lt;a href="http://www.beskerming.com/commentary/2007/08/12/249/German_Security_Professionals_in_the_Mist"&gt;Ley Anti-hacking&lt;/a&gt; dice que, crear o poseer herramientas de seguridad que potencialmente puedan ser usadas en ataques está prohibido.&lt;br /&gt;Algunas enmiendas de esta ley definen claramente que incluso un ataque local de &lt;a href="http://es.wikipedia.org/wiki/Denegaci%C3%B3n_de_servicio"&gt;Denegación de Servicio&lt;/a&gt; (contra un aplicativo) será considerado un crimen. Los “Hackers” – que en su opinión – son las personas que cometen dichos ataques, pueden ser sentenciados a más de 10 años de cárcel. Controversia es la palabra que mejor describe lo que pasa por la cabeza de los profesionales de seguridad de Alemania, quienes no saben si pueden realizar o no su trabajo. Por ejemplo, crear y poseer herramientas, ya que esto puede ser usado para diversas finalidades...&lt;br /&gt;&lt;br /&gt;Es decir, no podrán usarse herramientas para ejecutar pruebas en una red, pues éstas pueden causar un ataque de Denegación de Servicio (DoS), así que de crackeadores de contraseñas ni hablamos. El hecho es que, según la ley, cualquier empresa de seguridad estará cometiendo una ilegalidad, puesto que al analizar una red estarán usando un port scanner. Esto demuestra claramente  que el gobierno alemán no tuvo en cuenta la opinión de estos profesionales.&lt;br /&gt;&lt;br /&gt;Los consultores de seguridad esperan algunas modificaciones, como las realizadas en la ley de "mal uso del ordenador" del Reino Unido.&lt;br /&gt;Muchos grupos relacionados con la seguridad están eliminando las herramientas que puedan estar relacionadas con esta ley, como es el caso del grupo "&lt;a href="http://www.thc.org/"&gt;The Hackers Choice&lt;/a&gt;", o se están mudando a Holanda, como los creadores de &lt;a href="http://kismac.de/"&gt;KisMAC&lt;/a&gt; (un rastreador de redes), en su web se puede leer "&lt;span style="font-style: italic;"&gt;German says: Good-bye KisMAC!&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Isu4ahPAI74/Rs1Kzsxg-rI/AAAAAAAAABM/cY1gNyFgkTI/s1600-h/Ger_Goodbye.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_Isu4ahPAI74/Rs1Kzsxg-rI/AAAAAAAAABM/cY1gNyFgkTI/s200/Ger_Goodbye.jpg" alt="" id="BLOGGER_PHOTO_ID_5101816204933266098" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;¿Pero que herramientas pueden ser usadas para hackear?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Tu navegador (se puede utilizar para explotar fallos en aplicaciones web).&lt;br /&gt;O simplemente una consola de terminal...telnet...notepad...vi...?&lt;br /&gt;Por que muchas veces no es necesaria ninguna otra herramienta para invadir un sistema.&lt;br /&gt;&lt;br /&gt;El &lt;a href="http://www.ccc.de/"&gt;Chaos Computer Club&lt;/a&gt; (respetado grupo hacker alemán)  resume la situación: "&lt;span style="font-style: italic;"&gt;Parece que los políticos alemanes acaban de decidir que el país está libre de problemas de seguridad&lt;/span&gt;".&lt;br /&gt;"&lt;span style="font-style: italic;"&gt;Que con su bolígrafo y su total falta de conocimientos crearon otra ley estúpida que no resolverá ningún problema&lt;/span&gt;".&lt;br /&gt;¿Y las empresas de seguridad? O cierran o serán "criminales"...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/419794814883688730-7240841003426684424?l=mentehack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mentehack.blogspot.com/feeds/7240841003426684424/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=419794814883688730&amp;postID=7240841003426684424' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/419794814883688730/posts/default/7240841003426684424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/419794814883688730/posts/default/7240841003426684424'/><link rel='alternate' type='text/html' href='http://mentehack.blogspot.com/2007/08/ley-alemana-ilegaliza-herramientas-de.html' title='Ley alemana ilegaliza herramientas de seguridad'/><author><name>Goblin</name><uri>http://www.blogger.com/profile/14787519852019904439</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://3.bp.blogspot.com/-lw4uBqYXwew/TjuzPhr7GbI/AAAAAAAAAGE/nB80o443rOw/s220/sonho-de-liberdade.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Isu4ahPAI74/Rs1Kzsxg-rI/AAAAAAAAABM/cY1gNyFgkTI/s72-c/Ger_Goodbye.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-419794814883688730.post-6307310152314859928</id><published>2007-08-22T18:10:00.000-07:00</published><updated>2007-08-22T09:25:47.638-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><category scheme='http://www.blogger.com/atom/ns#' term='Manuales'/><title type='text'>Manual de Perl (II): Antes del código</title><content type='html'>Antes de empezar a escribir código hay una serie de tareas a tener en cuenta si queremos hacerlo correctamente. Claro que podemos simplemente abrir un editor de texto, escribir algunas líneas de código y ejecutarlo; si necesitamos algo corto, rápido y dulce podría estar bien, pero si estamos escribiendo un script que vamos a usar en el futuro o que pasará a otra persona o grupo debemos seguir algunas pautas básicas y muy recomendables:&lt;ul&gt;&lt;li&gt;Planear el flujo del programa&lt;/li&gt;&lt;li&gt;Organizarlo para poder reutilizar partes, si es necesario&lt;/li&gt;&lt;li&gt;Documentar, documentar, documentar.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Comentarios&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Un comentario no es más que un texto o anotación dentro del código, el cual no es interpretado, el &lt;span style="font-style: italic;"&gt;interprete de Perl&lt;/span&gt; simplemente lo ignora.&lt;br /&gt;Se usa para agregar información sobre el código o secciones de éste.&lt;br /&gt;&lt;br /&gt;Para escribir comentarios en &lt;span style="font-style: italic;"&gt;Perl&lt;/span&gt; se utiliza el símbolo #. Cualquier texto después de # y hasta el final de línea es un comentario.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 102);font-family:courier new;" &gt;    &lt;span style="font-weight: bold;"&gt;# Esto es un comentario&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Perl no tiene marcador de comentarios multilínea, por lo que para comentar varias líneas pondremos un # al comienzo de cada una de ellas.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 102); font-weight: bold;font-family:courier new;" &gt;    # Ejemplo de comentario&lt;/span&gt;&lt;span style="color: rgb(102, 51, 102); font-weight: bold;font-family:courier new;" &gt;&lt;br /&gt;# multilínea.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Plantillas, un buen hábito&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Una buena costumbre es realizar una plantilla que servirá de base para nuestros scripts, así conseguimos que todos los que escribimos tengan parecido y sentido consistente con la misma.&lt;br /&gt;En ella deberiamos incluir información sobre quién lo escribió, cuándo, qué hace y que versión es. Además, si estamos creando cualquier subrutina en el script, también deberiamos indicar qué es lo que se debe pasar, qué se retorna y una descripción de la función.&lt;br /&gt;&lt;br /&gt;Un ejemplo de plantilla sería:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;[Encabezado del script]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 102); font-weight: bold;font-family:courier new;" &gt;#!/usr/bin/perl -w&lt;br /&gt;#--------------------&lt;br /&gt;#Script Name:&lt;br /&gt;#Script Version:&lt;br /&gt;#Date:&lt;br /&gt;#Author:&lt;br /&gt;#Description:&lt;br /&gt;#Revision History:&lt;br /&gt;#    1.0/&lt;date&gt;: original version&lt;br /&gt;#--------------------&lt;br /&gt;&lt;/date&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;[FIN Encabezado del script]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 102); font-weight: bold;font-family:courier new;" &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;[Encabezado de función]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 102); font-weight: bold;font-family:courier new;" &gt;#--------------------&lt;br /&gt;#Function&lt;br /&gt;#Version Adde&lt;br /&gt;#Input:&lt;br /&gt;#Output:&lt;br /&gt;#Description:&lt;br /&gt;#--------------------&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;[FIN Encabezado de función]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Primera línea&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;La primera línea de nuestros programas debe empezar con &lt;span style="font-weight: bold;"&gt;#!&lt;/span&gt; y la ruta al intérprete de Perl. No siempre es necesaria pero si muy recomendable, ya que indica al programa donde debe buscar el interprete y sirve para pasarle opciones en tiempo de ejecución.&lt;br /&gt;Por ejemplo, para ejecutar el script en modo Warning (y el interprete está en /usr/bin) nuestra primera línea deberia ser:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 51, 102); font-weight: bold;font-family:courier new;" &gt;    #!/usr/bin/perl -w&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Esto ejecutará nuestro script activando varios warnings útiles, pero existen muchas opciones diferentes, para más información lo mejor es consultar el manual de perl.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-family: courier new;"&gt;&lt;span style="font-size: 78%;"&gt;&lt;span style="font-size: 85%;"&gt;&lt;span style="font-family: arial;"&gt;Artículos relacionados:&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;a href="http://mentehack.blogspot.com/2007/08/manual-de-perl-introduccin.html"&gt;Manual de Perl: Introducción&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/419794814883688730-6307310152314859928?l=mentehack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mentehack.blogspot.com/feeds/6307310152314859928/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=419794814883688730&amp;postID=6307310152314859928' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/419794814883688730/posts/default/6307310152314859928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/419794814883688730/posts/default/6307310152314859928'/><link rel='alternate' type='text/html' href='http://mentehack.blogspot.com/2007/08/manual-de-perl-ii-antes-del-cdigo.html' title='Manual de Perl (II): Antes del código'/><author><name>Goblin</name><uri>http://www.blogger.com/profile/14787519852019904439</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://3.bp.blogspot.com/-lw4uBqYXwew/TjuzPhr7GbI/AAAAAAAAAGE/nB80o443rOw/s220/sonho-de-liberdade.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-419794814883688730.post-4925226442110453133</id><published>2007-08-21T23:51:00.000-07:00</published><updated>2007-08-21T23:58:07.204-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bugs'/><category scheme='http://www.blogger.com/atom/ns#' term='trucos'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Bug en Bux.to para evitar el contador</title><content type='html'>Según leo en el &lt;a href="http://foro.elhacker.net/index.php/topic,174182.0.html"&gt;foro de elhacker.net&lt;/a&gt; existe un pequeño error en &lt;a href="http://bux.to/?r=maelocc"&gt;Bux.to&lt;/a&gt; que nos permite saltar el tiempo de espera de los anuncios y navegar entre ellos más rápidamente.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bux.to/?r=maelocc"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_Isu4ahPAI74/RsveO8xg-qI/AAAAAAAAABE/6saoi9KW1TE/s320/top.png" alt="" id="BLOGGER_PHOTO_ID_5101415351340563106" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;jackl007 nos deja un &lt;a href="http://usuarios.lycos.es/jkbenites29/BuxBug/BuxBugX.html"&gt;vídeo&lt;/a&gt; donde se explica detalladamente como explotarlo. En el mismo foro tenéis más información útil para sacar partido a este tipo de webs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/419794814883688730-4925226442110453133?l=mentehack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mentehack.blogspot.com/feeds/4925226442110453133/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=419794814883688730&amp;postID=4925226442110453133' title='4 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/419794814883688730/posts/default/4925226442110453133'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/419794814883688730/posts/default/4925226442110453133'/><link rel='alternate' type='text/html' href='http://mentehack.blogspot.com/2007/08/bug-en-buxto-para-evitar-el-contador.html' title='Bug en Bux.to para evitar el contador'/><author><name>Goblin</name><uri>http://www.blogger.com/profile/14787519852019904439</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://3.bp.blogspot.com/-lw4uBqYXwew/TjuzPhr7GbI/AAAAAAAAAGE/nB80o443rOw/s220/sonho-de-liberdade.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Isu4ahPAI74/RsveO8xg-qI/AAAAAAAAABE/6saoi9KW1TE/s72-c/top.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-419794814883688730.post-4210056565219020904</id><published>2007-08-21T14:30:00.000-07:00</published><updated>2007-08-21T05:42:25.596-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Perl'/><category scheme='http://www.blogger.com/atom/ns#' term='Manuales'/><title type='text'>Manual de Perl: Introducción</title><content type='html'>&lt;span style="font-weight: bold;"&gt;1. Introducción&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Perl&lt;/span&gt; es uno de los lenguajes de "scripting" (LdS) actuales más conocidos y utilizados.&lt;br /&gt;Se puede instalar en casi todas las plataformas y sistemas operativos existentes y es muy versátil.&lt;br /&gt;Además es libre y hay miles de sitios en Internet con contenido relacionado con Perl incluyendo, por ejemplo, scripts CGI para utilizar en páginas WWW. También existen disponibles un montón de módulos (o bibliotecas) destinados a las más variadas tareas de programación (funciones matemáticas, compresión/descompresión de archivos, cifrado de información, generación/interpretación de archivos HTML y XML, comunicación, acceso a bases de datos, etc.)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Isu4ahPAI74/Rsra8sxg-pI/AAAAAAAAAA8/9JCP-ecfG-Q/s1600-h/111-camel.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_Isu4ahPAI74/Rsra8sxg-pI/AAAAAAAAAA8/9JCP-ecfG-Q/s320/111-camel.jpg" alt="" id="BLOGGER_PHOTO_ID_5101130264296356498" border="0" /&gt;&lt;/a&gt;La web oficial de &lt;span style="font-style: italic;"&gt;Perl&lt;/span&gt; es &lt;a href="http://www.perl.com/"&gt;http://www.perl.com&lt;/a&gt; y contiene muchos enlaces a otras fuentes de información útiles. Existe un directorio llamado CPAN ('Comprehensive Perl Archive Network'),  con mirrors por todo el mundo, donde se pueden obtenet los principales módulos de extensión disponibles para este lenguaje.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Perl &lt;/span&gt;comparte las virtudes y defectos de otros LdS,  de las que podemos  destacar &lt;span style="font-weight: bold;"&gt;python&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;ruby&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;Tcl/Tk&lt;/span&gt; y, en menor medida ya que no es tan versátil, &lt;span style="font-weight: bold;"&gt;awk&lt;/span&gt;.&lt;br /&gt;Es un lenguaje semi-interpretado/semi-compilado, aunque podemos considerarlo interpretado ya que no existen las fases intermedias de compilación y enlace (link) de los programas, lo que nos permite ejecutarlo inmediatamente después de escribir un programa.&lt;br /&gt;&lt;br /&gt;El apodo de Perl es "&lt;span style="font-style: italic; font-weight: bold;"&gt;There's more than one way to do it&lt;/span&gt;" (TMTOWTDI). De hecho, para hacer algo en Perl siempre hay muchas maneras.&lt;br /&gt;&lt;br /&gt;En esta serie de artículos intentaré explicar los fundamentos de Perl intentando destacar sus ventajas en lo que a eficiencia y rapidez de escritura se refiere.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/419794814883688730-4210056565219020904?l=mentehack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mentehack.blogspot.com/feeds/4210056565219020904/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=419794814883688730&amp;postID=4210056565219020904' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/419794814883688730/posts/default/4210056565219020904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/419794814883688730/posts/default/4210056565219020904'/><link rel='alternate' type='text/html' href='http://mentehack.blogspot.com/2007/08/manual-de-perl-introduccin.html' title='Manual de Perl: Introducción'/><author><name>Goblin</name><uri>http://www.blogger.com/profile/14787519852019904439</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://3.bp.blogspot.com/-lw4uBqYXwew/TjuzPhr7GbI/AAAAAAAAAGE/nB80o443rOw/s220/sonho-de-liberdade.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Isu4ahPAI74/Rsra8sxg-pI/AAAAAAAAAA8/9JCP-ecfG-Q/s72-c/111-camel.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-419794814883688730.post-1412242584439640824</id><published>2007-08-21T02:09:00.000-07:00</published><updated>2007-08-21T12:49:46.508-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Start'/><title type='text'>Mente Hack, Comenzamos</title><content type='html'>&lt;span style="font-weight: bold;"&gt;¿Por qué existe este blog?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Como aficionado a la informática en general y a la programación y &lt;a href="http://es.wikipedia.org/wiki/%C3%89tica_hacker"&gt;hacking ético&lt;/a&gt; en particular pensé que era mi deber compartir conocimientos con la comunidad.  Además es un ejercicio excelente para para mejorar mis habilidades y obtener otras nuevas al mismo tiempo.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;¿A quién va dirigido?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A todo aquél que quiera aprender nuevos lenguajes de programación, sistemas operativos, técnicas y trucos que le ayuden en su trabajo diario, etc.&lt;br /&gt;En resumen, a toda persona con actitud y hambre de conocimientos constantes.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Comenzamos!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/419794814883688730-1412242584439640824?l=mentehack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mentehack.blogspot.com/feeds/1412242584439640824/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=419794814883688730&amp;postID=1412242584439640824' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/419794814883688730/posts/default/1412242584439640824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/419794814883688730/posts/default/1412242584439640824'/><link rel='alternate' type='text/html' href='http://mentehack.blogspot.com/2007/08/mente-hack-comenzamos.html' title='Mente Hack, Comenzamos'/><author><name>Goblin</name><uri>http://www.blogger.com/profile/14787519852019904439</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='31' src='http://3.bp.blogspot.com/-lw4uBqYXwew/TjuzPhr7GbI/AAAAAAAAAGE/nB80o443rOw/s220/sonho-de-liberdade.jpg'/></author><thr:total>0</thr:total></entry></feed>
