Buenas tarde amigos :<br><br>estoy migrado un programa echo python a
Perl y este realiza llamados al sistema operativo debían en una maquina
local (lspci, lsusb, etc) y además permiter escribir una nota esto con
el fin de ayudar a un usuario en caso que tenga problemas tecnicos en
su maquina y entonces con esa informacion suministra ayudarlo toda esta
información la guardo en un arreglo, mi problema compañeros como enviar
informacion en el mismo formato que lo tiene el codigo en phyton a un
servidor. este es el codigó python :<br>
<pre><div><br></div><div><span>import</span> <span>urllib</span></div><div><span>import</span> <span>os</span></div><br><div><span>info</span><span>=</span><span>&quot;-*- Información publicada automáticamente mediante el script &#39;crearnota&#39; de canaima:</span><span>\n\n</span><span>&quot;</span></div>
<br><div><span>info</span><span>+=</span><span>&quot;-</span><span>\n</span><span>&quot;</span></div><div><span>info</span><span>+=</span><span>&quot;----- Dispositivos conectados por PCI:</span><span>\n</span><span>&quot;</span></div>
<br><div><span>info</span><span>+=</span><span>&quot;-</span><span>\n</span><span>&quot;</span></div><div><span>info</span><span>+=</span><span>os</span><span>.</span><span>popen</span><span>(</span><span>&quot;lspci&quot;</span><span>)</span><span>.</span><span>read</span><span>()</span></div>
<br><div><span>info</span><span>+=</span><span>&quot;-</span><span>\n</span><span>&quot;</span></div><div><span>info</span><span>+=</span><span>&quot;----- Dispositivos conectados por puerto USB:</span><span>\n\n</span><span>&quot;</span></div>
<br><div><span>info</span><span>+=</span><span>&quot;-</span><span>\n</span><span>&quot;</span></div><div><span>info</span><span>+=</span><span>os</span><span>.</span><span>popen</span><span>(</span><span>&quot;lsusb&quot;</span><span>)</span><span>.</span><span>read</span><span>()</span></div>
<br><div><span>info</span><span>+=</span><span>&quot;-</span><span>\n</span><span>&quot;</span></div><div><span>info</span><span>+=</span><span>&quot;----- Información sobre su tarjeta gráfica:</span><span>\n\n</span><span>&quot;</span></div>
<br><div><span>info</span><span>+=</span><span>&quot;-</span><span>\n</span><span>&quot;</span></div><div><span>info</span><span>+=</span><span>os</span><span>.</span><span>popen</span><span>(</span><span>&quot;glxinfo&quot;</span><span>)</span><span>.</span><span>read</span><span>()</span></div>
<br><div><span>info</span><span>+=</span><span>&quot;-</span><span>\n</span><span>&quot;</span></div><div><span>info</span><span>+=</span><span>&quot;----- Información sobre su memoria RAM (en MB):</span><span>\n\n</span><span>&quot;</span></div>
<br><div><span>info</span><span>+=</span><span>&quot;-</span><span>\n</span><span>&quot;</span></div><div><span>info</span><span>+=</span><span>os</span><span>.</span><span>popen</span><span>(</span><span>&quot;free -m&quot;</span><span>)</span><span>.</span><span>read</span><span>()</span></div>
<br><div><span>info</span><span>+=</span><span>&quot;-</span><span>\n</span><span>&quot;</span></div><div><span>info</span><span>+=</span><span>&quot;----- Información sobre su espacio libre :</span><span>\n\n</span><span>&quot;</span></div>
<br><div><span>info</span><span>+=</span><span>&quot;-</span><span>\n</span><span>&quot;</span></div><div><span>info</span><span>+=</span><span>os</span><span>.</span><span>popen</span><span>(</span><span>&quot;df -h&quot;</span><span>)</span><span>.</span><span>read</span><span>()</span></div>
<br><div><span>info</span><span>+=</span><span>&quot;-</span><span>\n</span><span>&quot;</span></div><div><span>info</span><span>+=</span><span>&quot;----- Información sobre sus discos duros :</span><span>\n\n</span><span>&quot;</span></div>
<br><div><span>info</span><span>+=</span><span>&quot;-</span><span>\n</span><span>&quot;</span></div><div><span>info</span><span>+=</span><span>os</span><span>.</span><span>popen</span><span>(</span><span>&quot;fdisk -l&quot;</span><span>)</span><span>.</span><span>read</span><span>()</span></div>
<br><div><br></div><div><br></div><div><span>params</span> <span>=</span> <span>urllib</span><span>.</span><span>urlencode</span><span>({</span><span>&#39;codigo_form&#39;</span><span>:</span> <span>info</span><span>,</span> <span>&#39;titulo_form&#39;</span><span>:</span> <span>&quot;Desde consola&quot;</span><span>,</span><span>&#39;nombre_form&#39;</span><span>:</span> <span>&quot;nombre&quot;</span><span>})</span></div>
<br><div><span>f</span> <span>=</span> <span>urllib</span><span>.</span><span>urlopen</span><span>(</span><span>&quot;<a href="http://172.16.130.67:8000/enviar_consola" target="_blank">http://172.16.130.67:8000/enviar_consola</a>&quot;</span><span>,</span> <span>params</span><span>)</span></div>
<br><div><span>print</span> <span>f</span><span>.</span><span>read</span><span>()<br><br>como pueden ver amigos la inforación la guardan en un arreglo de nombre info y luegos la envia a la maquina y creo que es en formato html<br>
<br><br>tengo dos meses programando en perl e avanzado en lo siguiente compañeros<br><br><a href="http://notas.pl/" target="_blank">notas.pl</a><br><br>#!/usr/bin/perl -w<br><br>#   use strict;<br>  use Gtk2 -init;<br>  use Gtk2::GladeXML;  <br>
<br><br>  my $buffer_t ;<br>  my $programa = Gtk2::GladeXML-&gt;new(&#39;canaima-notas2.glade&#39;);  <br>  my $ventana_principal = $programa-&gt;get_widget(&#39;ventana_principal&#39;);<br>  my $t_titulo = $programa-&gt;get_widget(&#39;text_titulo&#39;);<br>
<br>  my $t_autor = $programa-&gt;get_widget(&#39;text_autor&#39;);<br># my $notas_t = $programa-&gt;get_widget(&#39;nota&#39;);#textview<br>  my $boton_e = $programa-&gt;get_widget(&#39;boton_enviar&#39;);<br>  my $boton_c = $programa-&gt;get_widget(&#39;boton_cancelar&#39;);<br>
<br>  my $pci = $programa-&gt;get_widget(&#39;pci&#39;); #lspci<br>  my $usb = $programa-&gt;get_widget(&#39;usb&#39;); #lsusb<br>  my $dpkg = $programa-&gt;get_widget(&#39;dpkg&#39;); #dpkg.log<br>  my $term = $programa-&gt;get_widget(&#39;term&#39;); #term.log<br>
<br>  my $d_alma = $programa-&gt;get_widget(&#39;d_alma&#39;); #dispositvo de almacenamientoterm.lo<br>  my $t_part = $programa-&gt;get_widget(&#39;t_part&#39;); #tabla de particiones        <br>  my $Eprueba = $programa-&gt;get_widget(&#39;label4&#39;);<br>
<br>  my $tit_aut = $programa-&gt;get_widget(&#39;label6&#39;);<br>  my $n1 =        $programa-&gt;get_widget(&#39;entry1&#39;);<br>  my $n2 =        $programa-&gt;get_widget(&#39;entry2&#39;);<br>  my $n3 =        $programa-&gt;get_widget(&#39;entry3&#39;);<br>
<br>  my $n4 =        $programa-&gt;get_widget(&#39;entry4&#39;);<br>  my $n5 =        $programa-&gt;get_widget(&#39;entry5&#39;);<br>  my $n6 =        $programa-&gt;get_widget(&#39;entry6&#39;);<br>  my $n7 =        $programa-&gt;get_widget(&#39;entry7&#39;);<br>
<br>  my $n8 =        $programa-&gt;get_widget(&#39;entry8&#39;);<br>  my $n9 =        $programa-&gt;get_widget(&#39;entry9&#39;);<br>  my $n10 =        $programa-&gt;get_widget(&#39;entry10&#39;);<br>  my $n11 =        $programa-&gt;get_widget(&#39;entry11&#39;);<br>
<br>  my $n12 =        $programa-&gt;get_widget(&#39;entry12&#39;);<br>  my $n13 =        $programa-&gt;get_widget(&#39;entry13&#39;);<br>  my $n14 =        $programa-&gt;get_widget(&#39;entry14&#39;);<br>  my $n15 =        $programa-&gt;get_widget(&#39;entry15&#39;);<br>
<br>  my $n16 =        $programa-&gt;get_widget(&#39;entry16&#39;);<br>  $programa-&gt;signal_autoconnect_from_package(&#39;main&#39;);  <br>  $ventana_principal-&gt;show_all();<br>  <br>  Gtk2-&gt;main;<br>  <br>  sub on_boton_cancelar_clicked {Gtk2-&gt;main_quit;}<br>
<br>  <br>  sub on_boton_enviar_clicked {                        <br>                my $d_alma1 = $d_alma-&gt;get_active;<br>                my $t_part1 = $t_part-&gt;get_active;<br>                push (@informe,&quot;****&lt;&lt;&lt;&lt; SISTEMA DE NOTAS CANAIMA &gt;&gt;&gt;&gt;****\n\n&quot;);                <br>
<br>                my $tex_1 = $n1-&gt;get_text();<br>                my $w = &amp;validar_nota($tex_1);<br>                &amp;datos_sistema($w);<br>                my $t_titulo1 = $t_titulo-&gt;get_text();<br>            my $t_autor1 = $t_autor-&gt;get_text();                        <br>                my $e =&amp;titulo_autor($t_titulo1,$t_autor1); <br>
<br>                #creamos el archivo y almacenamos los datos <br>                  open (DATA, &quot;&gt;/tmp/notas_canaima.txt&quot;); <br>                # Grabamos el archivo con los datos<br>                foreach $dato (@informe)<br>                        {<br>                                 print DATA $dato;<br>                        }<br>
<br>                  close(DATA);<br>                  chmod (0777, &quot;/tmp/notas_canaima.txt&quot;);<br>}<br><br>sub validar_nota {<br>#asignaciones,reconsideracion,cuota_ipasme,fe_vida,constancia_estudio,homologacion,embargo,oficios,resol_jp,<br>
#jubilacion_pension,pension_sobreviviente,resol_sob,pasivos_laborales<br><br>#---------------------------------------------------------------------------<br>        my ($num)=@_;<br>                my $w;<br>                if ($num eq &quot;&quot;){<br>#                         push (@informe,&quot;----- SIN NOTA DEL USUARIO: Por favor es necesario una nota   -----\n&quot;);                <br>
<br>                        $Eprueba-&gt;set_markup(&quot;----- SIN NOTA DEL USUARIO: Por favor es necesario una nota   -----\n&quot;);<br>                         $w=1;<br>                 }else{<br>                         $w=0;<br>                        push (@informe,&quot;----- NOTA DEL USUARIO -----\n&quot;);<br>
                        $tex_1 = $n1-&gt;get_text();<br><br>                        $Eprueba-&gt;set_markup(&quot;&quot;);<br>                        push(@informe,$tex_1);<br>                        $tex_2 = $n2-&gt;get_text();<br>                        push(@informe,$tex_2);<br>                        $tex_3 = $n3-&gt;get_text();<br>                        push(@informe,$tex_3);<br>
                        $tex_4 = $n4-&gt;get_text();<br><br>                        push(@informe,$tex_4);<br>                        $tex_5 = $n5-&gt;get_text();<br>                        push(@informe,$tex_5);<br>                        $tex_6 = $n6-&gt;get_text();<br>                        push(@informe,$tex_6);<br>                        $tex_7 = $n7-&gt;get_text();<br>
                        push(@informe,$tex_7);<br><br>                        $tex_8 = $n8-&gt;get_text();<br>                        push(@informe,$tex_8);<br>                        $tex_9 = $n9-&gt;get_text();<br>                        push(@informe,$tex_9);        <br>                        $tex_10 = $n10-&gt;get_text();<br>                        push(@informe,$tex_10);<br>
                        $tex_11 = $n11-&gt;get_text();<br><br>                        push(@informe,$tex_11);<br>                        $tex_12 = $n12-&gt;get_text();<br>                        push(@informe,$tex_12);<br>                        $tex_13 = $n13-&gt;get_text();<br>                        push(@informe,$tex_13);<br>                        $tex_14 = $n14-&gt;get_text();<br>
                        push(@informe,$tex_14);<br><br>                        $tex_15 = $n15-&gt;get_text();<br>                        push(@informe,$tex_15);<br>                        $tex_16 = $n16-&gt;get_text();<br>                        push(@informe,$tex_16);<br>                }        <br>        return $w;<br>}<br>sub datos_sistema{<br>        my $num=@_;<br>
        if ($num != 0){<br>                my $pc1 = $pci-&gt;get_active;        <br><br>                if ($pc1 == 1) {<br>                        push (@informe,&quot;----- Dispositivos PCI -----\n&quot;);<br>                        my @pci = qx(lspci);<br>                        push(@informe,@pci);<br>                <br>                }<br>                my $usb1 = $usb-&gt;get_active;<br>
                if ($usb1==1){<br>                        push (@informe,&quot;----- Dispositivos USB -----\n&quot;);<br><br>                        my @usb = qx(lsusb);<br>                        push(@informe,@usb);<br>                        <br>                }<br>                my $dpkg1 = $dpkg-&gt;get_active;<br>                if($dpkg1==1){<br>                        push (@informe,&quot;----- dpkg.log -----\n&quot;);<br>
                        my @dpkg = qx(cat /var/log/dpkg.log);<br><br>                        push(@informe,@dpkg);<br>                        <br>                }<br>                my $term1 = $term-&gt;get_active;<br>                if($term1==1){<br>                        push (@informe,&quot;----- term.log -----\n&quot;);<br>                        my @term = qx(cat /var/log/apt/term.log);<br>
                        push(@informe,@term);                        <br><br>                }        <br>        }                        <br>}<br>sub titulo_autor{<br>        my ($t_titulo1,$t_autor1)=@_;<br>        $Eprueba-&gt;set_markup(&quot;$t_titulo1,$t_autor1&quot;);<br>            my $w;                        <br>                        if ($t_titulo1 eq &quot;&quot;){<br>
                                my $w=1;<br>                                $tit_aut-&gt;set_markup(&quot;----- SIN TITULO PARA LA NOTA: Por favor es necesario un Titulo-----\n&quot;);                                <br><br>                        }else{<br>                                my $w=0;<br>                                push (@informe,&quot;----- TITULO USUARIO -----\n&quot;);                        <br>
                                $tit_aut-&gt;set_markup(&quot;&quot;);<br>                                push(@informe,$t_titulo1);                                <br>                        }                        <br>                        if ($t_autor1 eq &quot;&quot;){<br><br>                                my $w=1;<br>                                $tit_aut-&gt;set_markup(&quot;----- SIN AUTOR PARA LA NOTA: Por favor es necesario un Autor-----\n&quot;);                                <br>
                        }else{<br>                                my $w=0;<br>                                push (@informe,&quot;----- AUTOR DE LA NOTA -----\n&quot;);                        <br><br>                                $tit_aut-&gt;set_markup(&quot;&quot;);<br>                                push(@informe,$t_autor1);                                <br>                        }                <br>                 foreach  $i (@informe) {<br>
                         print &quot;$i\n&quot;;<br>                 }                <br>        return $w;<br>}         <br></span></div><div><br><br>y el <span>canaima-notas2.glade</span> se lo adjunto:<br><br><br>mis amigos solo necesito un poco de orientación que paquete o paquetes de la CPAN podria utilizar para tal fin <br>
<br><br>muschas gracias de ante mano buen dia  8,)  pasenla bien.</div></pre>