<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Walter Vargas</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/walter_vargas/" />
    <link rel="self" type="application/atom+xml" href="http://blogs.perl.org/users/walter_vargas/atom.xml" />
    <id>tag:blogs.perl.org,2009-11-03:/users/walter_vargas//191</id>
    <updated>2011-12-10T14:13:39Z</updated>
    <subtitle>A blog about the Perl programming language</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Pro 4.38</generator>

<entry>
    <title>Perl Calltrace</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/walter_vargas/2011/12/perl-calltrace.html" />
    <id>tag:blogs.perl.org,2011:/users/walter_vargas//191.2555</id>

    <published>2011-12-09T06:45:11Z</published>
    <updated>2011-12-10T14:13:39Z</updated>

    <summary>How to get the abs path of the script that do use modulename ? In the module: 1 package foo; 2 use common::sense; 3 use Cwd &apos;abspath&apos;; 4 5 sub program { 6 say abspath($0); 7 } 8 9 1;...</summary>
    <author>
        <name>Walter Vargas</name>
        <uri>http://www.covetel.com.ve</uri>
    </author>
    
    <category term="perlmodule" label="Perl Module" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/walter_vargas/">
        <![CDATA[<h1>How to get the abs path of the script that do <code>use modulename</code> ?</h1>

<ul>
<li>In the module: 
<style type="text/css">
<!--
#entry-2555 .entry-body pre { white-space: pre-wrap; font-family: monospace; color: #404048; background-color: #f8f8f8; }
#entry-2555 .entry-body body { font-family: monospace; color: #404048; background-color: #f8f8f8; }
#entry-2555 .entry-body .lnr { color: #a0a0b0; }
#entry-2555 .entry-body .Identifier { color: #c800ff; }
#entry-2555 .entry-body .Constant { color: #2020ff; background-color: #e8e8ff; }
#entry-2555 .entry-body .Type { color: #7040ff; }
#entry-2555 .entry-body .Statement { color: #008858; }
-->
</style>
<pre>
<span class="lnr">1 </span><span class="Statement">package</span><span class="Type"> foo</span>;
<span class="lnr">2 </span><span class="Statement">use </span>common::sense;
<span class="lnr">3 </span><span class="Statement">use </span>Cwd <span class="Constant">'</span><span class="Constant">abs<em>path</span><span class="Constant">'</span>;
<span class="lnr">4 </span>
<span class="lnr">5 </span><span class="Statement">sub </span><span class="Identifier">program </span>{
<span class="lnr">6 </span>    <span class="Statement">say</span> abs</em>path(<span class="Identifier">$0</span>);
<span class="lnr">7 </span>}
<span class="lnr">8 </span>
<span class="lnr">9 </span><span class="Constant">1</span>;
</pre></li>
</ul>
]]>
        

    </content>
</entry>

<entry>
    <title>Consultar al CNE Desde Perl.</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/walter_vargas/2009/12/consultar-al-cne-desde-perl.html" />
    <id>tag:blogs.perl.org,2009:/users/walter_vargas//191.141</id>

    <published>2009-12-28T13:55:12Z</published>
    <updated>2009-12-28T14:28:17Z</updated>

    <summary>En algún momento, en una reunión con un equipo de &#8220;Desarrolladores&#8221;, un compañero y yo discutíamos sobre el proceso de recolección de datos durante una asamblea comunal, este compañero me planteaba que era muy complicado andar pidiendo el Nombre y...</summary>
    <author>
        <name>Walter Vargas</name>
        <uri>http://www.covetel.com.ve</uri>
    </author>
    
        <category term="Perl" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Venezuela" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="cne" label="CNE" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="perl" label="Perl" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="venezuela" label="Venezuela" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/walter_vargas/">
        <![CDATA[<p>En algún momento, en una reunión con un equipo de &#8220;Desarrolladores&#8221;, un compañero y yo discutíamos sobre el proceso de recolección de datos durante una asamblea comunal, este compañero me planteaba que era muy complicado andar pidiendo el Nombre y Apellido a todas las personas de la asamblea, que esto retardaría el proceso de registro y que por lo tanto, solo iba a recoger los datos de la encuesta y serian datos anónimos. </p>

<p>Yo le sugerí que solo pidiera la Cédula de Identidad, y a partir de la cédula, usara la base de datos del CNE para obtener la información sobre Nombre y Apellidos. </p>

<p>A la anterior sugerencia, el compañero me contesto que si yo estaba loco, que obtener la base de datos del CNE  era un tema burocrático que le iba a tomar varias semanas y varios oficios.  </p>

<p>A continuación, en un par de lineas escritas muy rápido y sin ninguna preocupación por el estilo, muestro como podemos usar Perl para consultar automáticamente el portal del Consejo Nacional Electoral. </p>

<p><font color="#acacac">&nbsp;1 </font><font color="#e06800">#!/usr/bin/perl </font><br>
<font color="#acacac">&nbsp;2 </font><font color="#f030d0">use strict</font>;<br>
<font color="#acacac">&nbsp;3 </font><font color="#f030d0">use warnings</font>;<br>
<font color="#acacac">&nbsp;4 </font><font color="#f030d0">use </font>LWP::UserAgent; <br>
<font color="#acacac">&nbsp;5 </font><font color="#f030d0">use </font>LWP::Simple; <br>
<font color="#acacac">&nbsp;6 </font><font color="#f030d0">sub</font><font color="#008888">&nbsp;</font><font color="#008888">nombre</font>;<br>
<font color="#acacac">&nbsp;7 </font><br>
<font color="#acacac">&nbsp;8 </font><font color="#f030d0">my</font>&nbsp;<font color="#008888">$cedula</font>&nbsp;= <font color="#f030d0">shift</font>;<br>
<font color="#acacac">&nbsp;9 </font><font color="#f030d0">chomp</font>&nbsp;<font color="#008888">$cedula</font>; <br>
<font color="#acacac">10 </font><br>
<font color="#acacac">11 </font><font color="#f030d0">my</font>&nbsp;<font color="#008888">$ua</font>&nbsp;= LWP::UserAgent-&gt;<font color="#f030d0">new</font>( <font color="#8016ff">agent </font>=&gt; <font color="#8016ff">&quot;</font><font color="#8016ff">Mozilla/5.0 (X11; U; Linux i686; es-AR; rv:1.9.0.11) Gecko/2009061212 Firefox/3.0.11 (Canaima GNU/Linux)</font><font color="#8016ff">&quot;</font>&nbsp;);<br>
<font color="#acacac">12 </font><font color="#008888">$ua</font>-&gt;default<em>headers;<br>
<font color="#acacac">13 </font><br>
<font color="#acacac">14 </font><font color="#f030d0">my</font>&nbsp;<font color="#008888">$url</font>&nbsp;= <font color="#8016ff">&quot;</font><font color="#8016ff"><a href="http://www.cne.gob.ve/ce.php">http://www.cne.gob.ve/ce.php</a></font><font color="#8016ff">&quot;</font>;<br>
<font color="#acacac">15 </font><font color="#f030d0">my</font>&nbsp;<font color="#008888">$c</font>&nbsp;= <font color="#008888">$cedula</font>;<br>
<font color="#acacac">16 </font><font color="#008888">$c</font>&nbsp;=~ <font color="#f030d0">s/</font><font color="#4a9400">.</font><font color="#f030d0">//g</font>;<br>
<font color="#acacac">17 </font><font color="#f030d0">my</font>&nbsp;<font color="#008888">%parametros</font>&nbsp;= ( <font color="#8016ff">cedula </font>=&gt; <font color="#008888">$c</font>, <font color="#8016ff">nacionalidad </font>=&gt; <font color="#8016ff">&quot;</font><font color="#8016ff">V</font><font color="#8016ff">&quot;</font>);<br>
<font color="#acacac">18 </font><font color="#f030d0">my</font>&nbsp;<font color="#008888">$r</font>&nbsp;= <font color="#008888">$ua</font>-&gt;post(<font color="#008888">$url</font>,<font color="#008888">\%parametros</font>);<br>
<font color="#acacac">19 </font><br>
<font color="#acacac">20 </font><font color="#f030d0">if</font>&nbsp;(<font color="#008888">$r</font>-&gt;is</em>success) {<br>
<font color="#acacac">21 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#f030d0">my</font>&nbsp;<font color="#008888">@content</font>&nbsp;= <font color="#f030d0">split</font>&nbsp;<font color="#8016ff">&#8217;</font><font color="#8016ff">\n</font><font color="#8016ff">&#8217;</font>,<font color="#008888">$r</font>-&gt;content; <br>
<font color="#acacac">22 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#f030d0">my</font>&nbsp;<font color="#008888">$nombre</font>&nbsp;= nombre <font color="#008888">@content</font>;<br>
<font color="#acacac">23 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#f030d0">print</font>&nbsp;<font color="#8016ff">&quot;</font><font color="#8016ff">Nombre: </font><font color="#008888">$nombre</font><font color="#8016ff">&nbsp;</font><font color="#4a9400">\n</font><font color="#8016ff">&quot;</font>;<br>
<font color="#acacac">24 </font>&nbsp;&nbsp;&nbsp;&nbsp;}<br>
<font color="#acacac">25 </font><br>
<font color="#acacac">26 </font><font color="#f030d0">sub</font><font color="#008888">&nbsp;</font><font color="#008888">nombre</font><font color="#008888">&nbsp;</font>{<br>
<font color="#acacac">27 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#f030d0">my</font>&nbsp;(<font color="#008888">@c</font>) = <font color="#008888">@_</font>;<br>
<font color="#acacac">28 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#f030d0">my</font>&nbsp;<font color="#008888">@nombre</font>&nbsp;= <font color="#f030d0">grep</font>&nbsp;{/Nombre/} <font color="#008888">@c</font>;<br>
<font color="#acacac">29 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#f030d0">my</font>&nbsp;<font color="#008888">@b</font>&nbsp;= <font color="#f030d0">split</font><font color="#f030d0">&nbsp;/</font><font color="#8016ff">&lt;strong&gt;</font><font color="#f030d0">/</font>, <font color="#008888">$nombre</font>[<font color="#8016ff">0</font>];&nbsp;&nbsp;<br>
<font color="#acacac">30 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#f030d0">my</font>&nbsp;<font color="#008888">$nombre</font>&nbsp;= <font color="#008888">$b</font>[<font color="#8016ff">2</font>]; <br>
<font color="#acacac">31 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008888">$nombre</font>&nbsp;=~ <font color="#f030d0">s/</font><font color="#8016ff">&lt;</font><font color="#4a9400">\/</font><font color="#8016ff">strong&gt;&lt;</font><font color="#4a9400">\/</font><font color="#8016ff">td&gt;</font><font color="#f030d0">//</font>;<br>
<font color="#acacac">32 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#008888">$nombre</font>&nbsp;=~ <font color="#f030d0">s/</font><font color="#4a9400">\W</font><font color="#8016ff">$</font><font color="#f030d0">//g</font>;<br>
<font color="#acacac">33 </font>&nbsp;&nbsp;&nbsp;&nbsp;<font color="#f030d0">return</font>&nbsp;<font color="#008888">$nombre</font>;<br>
<font color="#acacac">34 </font>}<br>
</font></p>

<p><a href="http://blogs.perl.org/users/walter_vargas/cne2.pl">cne2.pl</a></p>
]]>
        

    </content>
</entry>

</feed>
