En perl no necesitamos importar nuestro sistema como con python,bueno de hecho hay un modulo llamado Sys::Info en cpan,pero no lo he usado y se tiene que instalar,ademas se ve un poco complejo:
Enlace
Lo único que haremos es usar comillas invertidas,como se hace en el scripting shell,ayer vimos como se hacia de perl a python ahora de shell a perl:
En la shell de Unix no necesitamos usar nada,ya que los mismos comandos son los que muestran la información como por ejemplo para saber el nombre de usuario solo hacemos
whoami
Y listo :D
Ahora en la shell scripting tambien se puede hacer asi,pero no definimos ese dato en ninguna variable:
Por ejemplo
#!/bin/bash
whoami
echo "Tu usuario es :"
Esto nos imprime la salida de whoami pero no donde la queremos,que seria delante de la cadena de texto.
Para hacer estodebemos encerrar nuestro comando en comillas invertidas y usar una variable avanzada:
: ${usuario:=`whoami`
Y listo
#!/bin/bash
: ${usuario:=`whoami`}
Así se hace en el shell scripting y como perl reúne lo mejor de sh,C,awk entre otros, también podemos hacer uso de las comillas invertidas :D
Lo que hacen las comillas invertidas es llamar comandos del sistema, así que si lo hacemos desde windows tendríamos que definir comandos de CMD
Lo único que necesitamos hacer es definir nuestro comando en una variable y luego llamarlo
Aquí el ejemplo:
#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
my $usuario = `whoami`;
my $locacion = `pwd`;
my $kernel = `uname`;
my $release = `uname -r`;
my $fecha = `date`;
print "\nMi sistema :\n\n";
print "Tu logname es : $usuario\n";
print "Directorio Actual : $locacion\n";
print "Kernel : $kernel\n";
print "Release : $release\n";
print "Fecha : $fecha\n";
Eso es todo :D
Te falto hablar de system ^~^ por ejemplo para uname -r
ResponderBorrar#!/usr/bin/perl
use strict;
use warnings;
use utf8;
my $usuario = `whoami`;
my $locacion = `pwd`;
my $kernel = `uname`;
my @release = ("uname", "-r");
my $fecha = `date`;
print "\nMi sistema :\n\n";
print "Tu logname es : $usuario\n";
print "Directorio Actual : $locacion\n";
print "Kernel : $kernel\n";
print "Release : "; system(@release);
print "Fecha : $fecha\n";
O lo quieres dejar para otra entrada ^-^
Si no hable de system,lo que pasa es que quiero dejar su uso para otro tipo de tareas.
BorrarTal vez en otra entrada :D
O hechatela tu ^_^,me vendría bien un poco de ayuda
hechatela tu?
BorrarAsí me lo pides,tu si que sabes tratar a una mujer u//u
Pero no me gusta blogger ,de hecho no me gusta bloggear ni nada que tenga que ver con redes sociales y tu lo sabes, mejor solo te corrijo tus errores ^o^
O crea un sitio con rais o catalyst y ya veremos :)
Con catalyst o rails O_O
BorrarA lo mucho podre montar un CMS como joomla en un servidor XD y me pides que use un framework.
Pero ta bien de todas formas es bueno verte por aquí :D
^-^
BorrarCon system lo puedes hacer con menos lineas ^~^
https://lh6.googleusercontent.com/-ucBUcsegYIA/ULvXtJXtPbI/AAAAAAAAAHg/N_XJ3sHhJ4w/s647/mas+rapido.png
Si,con system no necesitamos definir variables y ahorramos lineas y texto,pero si requerimos los datos otra vez tendríamos que definir system otra vez o no?.
ResponderBorrarPero conociéndote me vas a decir que si lo metemos en una subrutina queda:
#!/usr/bin/env perl
print "Mi logname es: "; &nombre();
sub nombre {
system("whoami");
}
O no?
Una subrutina para cada system Damian....
BorrarNo es mala practica?
Te mencione system porque el ejemplo que hiciste es muy pequeño,pero si es un código grande que usa funciones del sistema no me molesta definir variables con comillas invertidas ^~^