voici le ou les articles dont l'un des tags est : Perl
Perl : un one-liner - II
Un petit en passant pour convertir du décimal en hexa. Pratique pour les codes couleurs du chteumeuleu.
Admettons qu'on ait trois valeurs de RVB en décimal : 255, 128 et 0. Pour obtenir la valeur en hexadécimal avec le signe "#" au début, on utilise la fonction "printf" en Perl :
drzz@hanouka:~$ perl -e 'printf "#" . "%02x"x3 ."\n",255,127,0' #ff7f00
Il n'y a qu'une option "-e" dans ce cas. En effet, on ne demande que l'exécution de ou des instructions entre guillemets simples. Le "#" est affiché puis concaténé par l'opérateur "." aux trois valeurs transformées par l'indication "%02x" (qui sert à la conversion vers de l'hexadécimal) à trois reprises (le "x3"). On n'oublie pas le retour à la ligne "\n" et le passage des arguments qui feront l'objet du traitement pour la sortie formatée (les valeurs 255,127,0).
tags : Perl, one-liner
mis en ligne : Sat Jan 2 22:14:56 CEST 2010
Perl : un one-liner - I
Voici le début d'une série de one-liners en Perl.
C'est un spécial "Mac OS X". Je m'explique. Vous avez un fichier ASCII qui déboule d'un Mac quelconque (pas sous OS 9 quand même) et vous voulez le récuperer sous un Unix quelconque ? Problème, les caractères de fin de ligne ne correspondent pas et vous êtes avec plein de "^M" en fin de ligne.
On envoie donc :
drzz@hanouka:~$ perl -pi -e "s/\r/\n/g" <nom_du_fichier>
On a juste substitué le caractère de fin de ligne "\r" par "\n" pour être total Unix. Pour celles et ceux pas trop familiers avec les options en ligne de commande sous Perl, les voici :
- -e : c'est pour exécuter l'option directement sur la ligne de commande sans préciser de nom de fichier de script (comme la lettre le laisse entendre);
- -pi : cette option permet grâce au "p" de créer une boucle comme :
while (<>) { s/\r/\n/g; } continue { print; # l'option "-i" permet d'écrire dans le fichier au nom original }(remarquer l'équivalence du script entre les deux premières accolades) pour traiter chaque ligne et renvoyer le retour dans le même fichier (option "-i"; on est ici très proche de sed;
Bon, j'espère que c'est clair, en tout cas, je m'en sers assez souvent.
tags : Perl, one-liner
mis en ligne : Sun Dec 20 16:18:52 CEST 2009
quelques modules Perl
Une liste des modules du CPAN que j'utilise, si ça peut en intéresser quelques-uns.
J'aurais pu rajouter les versions également, mais disons pour faire simple que je crois que tous ces petits sont à jour :
- Algorithm::C3
- Algorithm::Diff
- AppConfig
- Archive::Tar
- Archive::Zip
- Array::Compare
- Authen::SASL
- Best
- CGI
- CGI::Ajax
- CGI::Application
- CGI::Simple
- CGI::Untaint
- CGI::Untaint::date
- CGI::Untaint::email
- CPAN
- CSS::Squish
- Cache::Cache
- Carp::Clan
- Catalyst::Action::REST
- Catalyst::Action::RenderView
- Catalyst::Authentication::Store::DBIx::Class
- Catalyst::Devel
- Catalyst::Manual
- Catalyst::Model::DBIC::Schema
- Catalyst::Plugin::Authentication
- Catalyst::Plugin::ConfigLoader
- Catalyst::Plugin::Session
- Catalyst::Plugin::StackTrace
- Catalyst::Plugin::Static::Simple
- Catalyst::Runtime
- Catalyst::View::GD::Barcode::QRcode
- Catalyst::View::TT
- CatalystX::CRUD
- Chart::Clicker
- Chatbot
- Check::ISA
- Class::Accessor
- Class::Accessor::Chained
- Class::Accessor::Grouped
- Class::C3
- Class::C3::Componentised
- Class::C3::XS
- Class::Container
- Class::DBI
- Class::DBI::AbstractSearch
- Class::DBI::Loader
- Class::DBI::Loader::Relationship
- Class::DBI::Pager
- Class::DBI::Plugin::RetrieveAll
- Class::DBI::Plugin::Type
- Class::Data::Accessor
- Class::Data::Inheritable
- Class::Inspector
- Class::MOP
- Class::Method::Modifiers
- Class::Singleton
- Class::Trigger
- Clone
- Clone::PP
- Color::Library
- Compress::Zlib
- Config::Any
- Config::General
- Cwd
- DBD::SQLite
- DBIx::Class
- DBIx::Class::Schema::Loader
- DBIx::ContextualFetch
- Data::Denter
- Data::Dump
- Data::OptList
- Data::Page
- Data::Pageset
- Data::Taxi
- Data::Visitor
- DataFormValidator
- Date::Manip
- DateTime
- DateTime::Locale
- DateTime::Set
- DateTime::TimeZone
- Devel::Cycle
- Devel::StackTrace
- Devel::Symdump
- Digest::HMAC
- Digest::MD5
- Digest::SHA
- Email::Address
- Email::Date::Format
- Email::FolderType
- Email::LocalDelivery
- Email::MIME::ContentType
- Email::MessageID
- Email::Simple
- Email::Simple::Creator
- Email::Valid
- Encode
- Error
- Exception::Class
- Exporter::Lite
- ExtUtils::CBuilder
- ExtUtils::Depends
- ExtUtils::Install
- ExtUtils::MakeMaker
- File::Copy::Recursive
- File::Find::Rule
- File::HomeDir
- File::MMagic
- File::Modified
- File::NFSLock
- File::Path
- File::Path::Expand
- File::Remove
- File::Temp
- File::Which
- Forest
- FreezeThaw
- GD::Barcode
- Geometry::Primitive
- Getopt::Long
- Graphics::Color
- Graphics::Primitive
- Graphics::Primitive::Driver::Cairo
- HTML-Tree
- HTML::Mason
- HTML::Parser
- HTML::Tagset
- HTML::Template
- HTTP::Body
- HTTP::Request::AsCGI
- HTTP::Response::Encoding
- HTTP::Server::Simple
- Hash::Util::FieldHash::Compat
- IO::Compress::Base
- IO::Compress::Bzip2
- IO::Compress::Zlib
- IO::Stringy
- IO::Zlib
- IPC::Run
- IPC::Run3
- Ima::DBI
- Imager
- JSON
- JSON::Any
- JSON::DWIW
- LWP
- Layout::Manager
- Lingua::EN::Inflect
- Lingua::EN::Inflect::Number
- Lingua::EN::Numbers::Ordinate
- List::MoreUtils
- List::Util
- Locale::Maketext::Lexicon
- Locale::Maketext::Simple
- Log::Log4perl
- Log::Message
- Log::Message::Simple
- MIME::Lite
- MIME::Lite::HTML
- MIME::Types
- MRO::Compat
- Math::BigInt
- Math::Complex
- Math::Pari
- Module::Build
- Module::CoreList
- Module::Find
- Module::Install
- Module::Load
- Module::Loaded
- Module::Pluggable
- Module::Refresh
- Moose
- MooseX::AttributeHelpers
- MooseX::Clone
- MooseX::Storage
- MooseX::Types
- MooseX::Types::Path::Class
- Mouse
- Net
- Net::IP
- Net::IRC
- Net::Jabber
- Net::XMPP
- Number::Compare
- Object::Accessor
- Object::Signature
- PAR::Dist
- PHP::Serialization
- Package::Constants
- Params::Check
- Params::Validate
- Path::Class
- Perl
- Pod::Coverage
- Pod::Escapes
- Pod::Parser
- Pod::Simple
- Rose::DB::Object
- Rose::HTML::Objects
- Rose::Object
- Rose::URI
- SOAP::Lite
- SQL::Abstract
- SQL::Abstract::Limit
- Scope::Guard
- Set::Infinite
- Sort::SQL
- Spiffy
- String::Koremutake
- Sub::Exporter
- Sub::Install
- Sub::Uplevel
- Task::Weaken
- Template
- Template::Plugin::Class
- Template::Timer
- Term::ReadKey
- Term::ReadLine
- Term::UI
- Test
- Test::Base
- Test::Deep
- Test::Differences
- Test::Exception
- Test::HTTP::Server::Simple
- Test::Harness
- Test::JSON
- Test::Log4perl
- Test::LongString
- Test::Manifest
- Test::Mock::LWP
- Test::MockModule
- Test::MockObject
- Test::NoWarnings
- Test::Pod
- Test::Pod::Coverage
- Test::Reporter
- Test::Simple
- Test::TempDir
- Test::Tester
- Test::WWW::Selenium
- Test::Warn
- Test::YAML::Valid
- Test::use::ok
- Text::Diff
- Text::Flow
- Text::Glob
- Text::SimpleTable
- Tie::RefHash
- Tie::RefHash::Weak
- Tie::ToObject
- Time::Clock
- TimeDate
- Tree::DAG_Node
- Tree::Simple
- Tree::Simple::VisitorFactory
- UNIVERSAL::can
- UNIVERSAL::isa
- UNIVERSAL::moniker
- UNIVERSAL::require
- URI
- URI::Find
- Variable::Magic
- WWW::Mechanize
- XML-RPC
- XML::NamespaceSupport
- XML::SAX
- XML::Stream
- XML::TreePP
- YAML
- YAML::Syck
- YAML::Tiny
- namespace::clean
- parent
tags : Perl, CPAN
mis en ligne : Sun Mar 01 17:21:33 CEST 2009
OpenSolaris : installation de modules Perl
Un petit tuyau pour faciliter l'installation de modules du CPAN sous OpenSolaris.
En essayant d'installer puis d'utiliser Catalyst, le framework de développement MVC sous Perl, je suis tombé sur un os. Tout bonnement, je repérais des problèmes d'installation de modules incontournables, en raison d'erreurs dans la compilation.
Un petit tour sur les forums OpenSolaris, et je me suis retrouvé avec une bonne recommandation. Elle consiste à modifier deux lignes de Config.pm (un fichier situé à /usr/perl5/5.8.4/lib/i86pc-solaris-64int/Config.pm) :
- changer cccdlflags='-KPIC' en cccdlflags='-fPIC' (ligne 164 dans ma version de Config.pm),
- et changer optimize='-xO3 -xspace -xildoff' en optimize='-O3' (ligne 889 dans ma version de Config.pm).
Ces deux modifications devraient suffire à partir du moment où l'on a bien installé le package SUNWgcc avec la commande 'pkg install'.
Bonnes séances de Perl à tous les mongueurs !
tags : Perl, OpenSolaris
mis en ligne : Thu Feb 26 12:02:39 CEST 2009
$foo - Perl-Magazin
C'est bien fait, c'est sur Perl, c'est en allemand...
Pour celles et ceux qui aiment et/ou pratiquent Perl, $foo - Perl-Magazin se présente comme une excellente réalisation (en allemand) qui couvre de façon intelligente les diverses (et nombreuses) possibilités de ce langage incontournable dans le monde Unix.
tags : Perl
mis en ligne : Mon Dec 24 11:08:26 CET 2007
des podcasts ou des netcasts
Depuis pas mal de temps, on trouve des shows très intéressants venus principalement d'outre-Atlantique ou d'outre-Manche. En voici une petite sélection non-exhaustive pour démarrer.
Ces podcasts à drZZ tournent autour d'Unix et des technologies de l'information. Bien évidemment, tout est en anglais ou presque.
- Lug Radio : on commence par un collectif anglais d'utilisateurs Linux bien sympathiques qui abordent tout un tas de sujets relatifs au pingouin et qui n'en loupent jamais une pour vanner les Français; ça donne un bon aperçu du monde Linux et le niveau technique est à la hauteur, avec tout un tas de projets passés en revue;
- the Perl podcast : le monde Perl avec des interviews de bien des acteurs importants (auteurs de modules, etc.) et même parfois l'excellentissime Jonathan Schwartz qui lit les news;
- BSD Talk : de bonnes séquences sur les BSD, avec les trois versions majeures couvertes et d'autres aspects moins bien connus (DragonFly BSD, DesktopBSD, etc.); c'est techniquement toujours relevé et consistent, avec parfois des approches hors interview sur tel ou tel classique du monde Unix (X Window, NFS, etc.);
- IT Conversations : le monde des nouvelles technologies en général, du Web 2.0 aux biotechnologies;
- RYOS : Run Your Own Server, couvrant l'ensemble des préoccupations d'un administrateur système qui se respecte;
- In The Trenches : pareil, de l'administration système (les podcasts durent plus longtemps et le fil de la conversation est un peu plus lâche);
- RU3 : le seul podcast en français de la liste, sur les réseaux de l'intelligence collective (les nouvelles tendances du web et tout le reste);
- Sploitcast : quelques sujets relatifs à la sécurité informatique;
- Hak5 : des podcasts vidéo surtout, c'est ricain, jeune, sympa et parfois techniquemet intéressant comme il faut;
- Binrev.com : c'est le préféré à drZZ, et rien que pour entendre Stank Dawg dans ses envolées et toute la bande, ça vaut le coup; à ne pas oublier non plus, les sites associés : Infonomicon, PhreakFaktor, etc.
Voilà donc quelques mégas hebdomadaires pour se culturer les oreilles.
tags : podcasts, netcasts, Linux, Perl, Unix, IT, BSD, server
mis en ligne : Tue Apr 3 14:50:17 CEST 2007
consulter l'ensemble des articles publiés sur drZZ : ici