<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Archives des Perl - Xavki</title>
	<atom:link href="https://xavki.blog/category/perl/feed/" rel="self" type="application/rss+xml" />
	<link></link>
	<description>Open your Sources..</description>
	<lastBuildDate>Mon, 13 Aug 2018 10:00:50 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>[Perl] : le web server en quelques lignes</title>
		<link>https://xavki.blog/perl-le-web-server-en-quelques-lignes/</link>
		
		<dc:creator><![CDATA[xavki]]></dc:creator>
		<pubDate>Mon, 13 Aug 2018 10:00:50 +0000</pubDate>
				<category><![CDATA[Perl]]></category>
		<guid isPermaLink="false">https://xavki.wordpress.com/?p=260</guid>

					<description><![CDATA[<p><img width="1880" height="658" src="https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-325229.jpeg" class="attachment- size- wp-post-image" alt="" style="float:left; margin:0 15px 15px 0;" decoding="async" fetchpriority="high" srcset="https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-325229.jpeg 1880w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-325229-300x105.jpeg 300w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-325229-768x269.jpeg 768w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-325229-1024x358.jpeg 1024w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-325229-1568x549.jpeg 1568w" sizes="(max-width: 1880px) 100vw, 1880px" />Après AWK et python, il fallait bien compléter notre petit tour de mise en place d&#8217;une socket d&#8217;écoute web (web serveur). C&#8217;est au tour de Perl de  nous permettre de réaliser cette petite opération. Ce n&#8217;est pas moi qui suit... <a href="https://xavki.blog/perl-le-web-server-en-quelques-lignes/" class="suite"><i class="fal fa-long-arrow-right"></i></a></p>
<p>L’article <a href="https://xavki.blog/perl-le-web-server-en-quelques-lignes/">[Perl] : le web server en quelques lignes</a> est apparu en premier sur <a href="https://xavki.blog">Xavki</a>.</p>
]]></description>
										<content:encoded><![CDATA[<img width="1880" height="658" src="https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-325229.jpeg" class="attachment- size- wp-post-image" alt="" style="float:left; margin:0 15px 15px 0;" decoding="async" srcset="https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-325229.jpeg 1880w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-325229-300x105.jpeg 300w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-325229-768x269.jpeg 768w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-325229-1024x358.jpeg 1024w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-325229-1568x549.jpeg 1568w" sizes="(max-width: 1880px) 100vw, 1880px" /><p>Après <a href="https://xavki.wordpress.com/2018/08/10/awk-creer-un-serveur-web-minimaliste/">AWK</a> et <a href="https://xavki.wordpress.com/2018/06/28/python-serveur-web/">python</a>, il fallait bien compléter notre petit tour de mise en place d&#8217;une socket d&#8217;écoute web (web serveur). C&#8217;est au tour de Perl de  nous permettre de réaliser cette petite opération.</p>
<p>Ce n&#8217;est pas moi qui suit à l&#8217;origine de ce code en Perl vous pouvez <a href="http://tuxgraphics.org/~guido/scripts/perlweb.txt">trouver la source ici</a>.  En tout cas une fois de plus ce n&#8217;est pas très long et ça fait le taff en affichant un résultat sur le localhost port 8000.</p>
<pre>#!/usr/bin/perl -w # vim: set sw=4 ts=4 si et: # Simple single threaded web server, written by Guido Socher # copyright: freeware, do with it whatever you want. No warranty of any kind. # # Usage: perlweb.pl [portnumber] [ip-to-bind-to] # Example: ./perlweb.pl # The above example will answer http requests at port 8000  # on any interface that this machine has. # Try: # curl -v http://localhost:8000 # use strict; use Socket; # my $listenport = $ARGV[0] || 8000; socket (Server, PF_INET, SOCK_STREAM, 6) || die ("Error socket: $!"); # protocol 6 is tcp setsockopt(Server, SOL_SOCKET,SO_REUSEADDR,1) || die ("Error setsockopt: $!"); my $sockaddr = sockaddr_in($listenport, $ARGV[1] ? inet_aton($ARGV[1]) : INADDR_ANY) || die ("Error sockaddr_in: $!"); bind(Server,$sockaddr) || die ("Error bind: $!"); listen(Server,SOMAXCONN) || die ("Error listen: $!");  my $caddr; my $buffer; while ($caddr = accept(Client, Server)) {     recv(Client,$buffer,1000,0);     if ($buffer &amp;&amp; $buffer=~/^GET /){         print Client "HTTP/1.1 200 OK\r\n";         print Client "Content-Type: text/html\r\n";         print Client "Server: perlweb/1.0\r\n";         print Client "Connection: close\r\n";         print Client "\r\n";         # debug a bit:         #print "client:\n$buffer\n";         print Client "This web server works!\n"; } close Client; } # __END__ </pre>
<p>En plus court pour faire en une ligne mais moins complet :</p>
<pre>$ cpan HTTP::Server::Brick   # install dependency $ perl -MHTTP::Server::Brick -e '$s=HTTP::Server::Brick-&gt;new(port=&gt;8000); $s-&gt;mount("/"=&gt;{path=&gt;"."}); $s-&gt;start' </pre>
<p>L’article <a href="https://xavki.blog/perl-le-web-server-en-quelques-lignes/">[Perl] : le web server en quelques lignes</a> est apparu en premier sur <a href="https://xavki.blog">Xavki</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[Perl] : récupérer un pattern présent une ou plusieurs fois par ligne</title>
		<link>https://xavki.blog/perl-recuperer-un-pattern-present-une-ou-plusieurs-fois-par-ligne/</link>
		
		<dc:creator><![CDATA[xavki]]></dc:creator>
		<pubDate>Sat, 04 Aug 2018 21:06:52 +0000</pubDate>
				<category><![CDATA[Perl]]></category>
		<guid isPermaLink="false">https://xavki.wordpress.com/?p=389</guid>

					<description><![CDATA[<p>Perl n&#8217;est pas forcément mon language préféré mais pour faire du oneline il est plutôt génial. Aujourd&#8217;hui un truc tout simple une fois de plus. Récupérer un pattern par une regex mais en récupérant toutes les occurances. Cela sous entend... <a href="https://xavki.blog/perl-recuperer-un-pattern-present-une-ou-plusieurs-fois-par-ligne/" class="suite"><i class="fal fa-long-arrow-right"></i></a></p>
<p>L’article <a href="https://xavki.blog/perl-recuperer-un-pattern-present-une-ou-plusieurs-fois-par-ligne/">[Perl] : récupérer un pattern présent une ou plusieurs fois par ligne</a> est apparu en premier sur <a href="https://xavki.blog">Xavki</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Perl n&#8217;est pas forcément mon language préféré mais pour faire du oneline il est plutôt génial.</p>
<p>Aujourd&#8217;hui un truc tout simple une fois de plus. Récupérer un pattern par une regex mais en récupérant toutes les occurances. Cela sous entend que l&#8217;on récupère également les patterns même si ils sont présents plusieurs fois par ligne.</p>
<p>Voici le fichier de départ :</p>
<pre>└─ $ ▶ cat file.txt 
vert gris
jaune
bleu
orange b
rouge blanc beige
</pre>
<p>Je cherche à récupérer les mots commençant par un b soit le pattern\bb\w+</p>
<pre>perl -ne 'while(/\bb\w+/g){print "$&amp;\n";}' file.txt
</pre>
<p>Donc :</p>
<ul>
<li>-e : ligne de commande</li>
<li>-n : évite de faire un while, permet de faire une boucle</li>
<li> while : pour chaque pattern</li>
<li>$&amp; : récupère le pattern</li>
<li>print : on affiche</li>
</ul>
<p>L’article <a href="https://xavki.blog/perl-recuperer-un-pattern-present-une-ou-plusieurs-fois-par-ligne/">[Perl] : récupérer un pattern présent une ou plusieurs fois par ligne</a> est apparu en premier sur <a href="https://xavki.blog">Xavki</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>[Perl] : passer une simple regex</title>
		<link>https://xavki.blog/perl-passer-une-simple-regex/</link>
		
		<dc:creator><![CDATA[xavki]]></dc:creator>
		<pubDate>Thu, 02 Aug 2018 12:44:58 +0000</pubDate>
				<category><![CDATA[Perl]]></category>
		<guid isPermaLink="false">https://xavki.wordpress.com/?p=221</guid>

					<description><![CDATA[<p><img width="1880" height="1253" src="https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-911956.jpeg" class="attachment- size- wp-post-image" alt="" style="float:left; margin:0 15px 15px 0;" decoding="async" srcset="https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-911956.jpeg 1880w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-911956-300x200.jpeg 300w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-911956-768x512.jpeg 768w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-911956-1024x682.jpeg 1024w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-911956-1568x1045.jpeg 1568w" sizes="(max-width: 1880px) 100vw, 1880px" />Perl est super pratique pour fair en une ligne ce que d&#8217;autres mettraient plusieurs ligne à faire. En plus Perl se comprend relativement bien je le trouve assez intuitif. Comment appliquer une regex en Perl et afficher directement le résultat... <a href="https://xavki.blog/perl-passer-une-simple-regex/" class="suite"><i class="fal fa-long-arrow-right"></i></a></p>
<p>L’article <a href="https://xavki.blog/perl-passer-une-simple-regex/">[Perl] : passer une simple regex</a> est apparu en premier sur <a href="https://xavki.blog">Xavki</a>.</p>
]]></description>
										<content:encoded><![CDATA[<img width="1880" height="1253" src="https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-911956.jpeg" class="attachment- size- wp-post-image" alt="" style="float:left; margin:0 15px 15px 0;" decoding="async" loading="lazy" srcset="https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-911956.jpeg 1880w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-911956-300x200.jpeg 300w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-911956-768x512.jpeg 768w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-911956-1024x682.jpeg 1024w, https://xavki.blog/wp-content/uploads/2018/07/pexels-photo-911956-1568x1045.jpeg 1568w" sizes="auto, (max-width: 1880px) 100vw, 1880px" /><p>Perl est super pratique pour fair en une ligne ce que d&#8217;autres mettraient plusieurs ligne à faire. En plus Perl se comprend relativement bien je le trouve assez intuitif.</p>
<p>Comment appliquer une regex en Perl et afficher directement le résultat ?</p>
<pre>echo "12:30:58" | perl -nle '$_ =~ /(..):(..):(..)/ ; print "Heures:$1\nMinutes:$2\nSecondes:$3"'
</pre>
<p>Résultat :</p>
<pre>Heures:12
Minutes:30
Secondes:58
</pre>
<p>Donc :</p>
<ul>
<li>$_ : permet de récupérer l&#8217;entrée standard</li>
<li>=~ / / : permet d&#8217;appliquer une regex</li>
<li>() : parenthèses capturantes</li>
<li>$1 : première parenthèse capturante</li>
</ul>
<p>L’article <a href="https://xavki.blog/perl-passer-une-simple-regex/">[Perl] : passer une simple regex</a> est apparu en premier sur <a href="https://xavki.blog">Xavki</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
