No subject


Tue Sep 21 04:50:38 BST 2010


- The context, Perl assigning is sensible to the left part of
the assignment sentence.
- The modifiers for the REGEXes, like the g in this case.
- The grouping for the extraction, the parentheses.

-- 
J. E. Aneiros
GNU/Linux User #190716 en http://counter.li.org
perl -e '$_=pack(c5,0105,0107,0123,0132,(1<<3)+2);y[A-Z][N-ZA-M];print;'
PK fingerprint: 5179 917E 5B34 F073 E11A  AFB3 4CB3 5301 4A80 F674

--0015174bdf0a7474510490c9d25a
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Suppose you have a file like this:<div><br></div><div>=A0<font class=3D"App=
le-style-span" face=3D"&#39;courier new&#39;, monospace">1*</font><span cla=
ss=3D"Apple-tab-span" style=3D"white-space:pre"><font class=3D"Apple-style-=
span" face=3D"&#39;courier new&#39;, monospace">	</font></span><font class=
=3D"Apple-style-span" face=3D"&#39;courier new&#39;, monospace">2*</font><s=
pan class=3D"Apple-tab-span" style=3D"white-space:pre"><font class=3D"Apple=
-style-span" face=3D"&#39;courier new&#39;, monospace">	</font></span><font=
 class=3D"Apple-style-span" face=3D"&#39;courier new&#39;, monospace">3</fo=
nt><span class=3D"Apple-tab-span" style=3D"white-space:pre"><font class=3D"=
Apple-style-span" face=3D"&#39;courier new&#39;, monospace">	</font></span>=
<font class=3D"Apple-style-span" face=3D"&#39;courier new&#39;, monospace">=
4</font><span class=3D"Apple-tab-span" style=3D"white-space:pre"><font clas=
s=3D"Apple-style-span" face=3D"&#39;courier new&#39;, monospace">	</font></=
span><font class=3D"Apple-style-span" face=3D"&#39;courier new&#39;, monosp=
ace">5</font><span class=3D"Apple-tab-span" style=3D"white-space:pre"><font=
 class=3D"Apple-style-span" face=3D"&#39;courier new&#39;, monospace">	</fo=
nt></span><font class=3D"Apple-style-span" face=3D"&#39;courier new&#39;, m=
onospace">6</font><div>
<font class=3D"Apple-style-span" face=3D"&#39;courier new&#39;, monospace">=
10</font><span class=3D"Apple-tab-span" style=3D"white-space:pre"><font cla=
ss=3D"Apple-style-span" face=3D"&#39;courier new&#39;, monospace">	</font><=
/span><font class=3D"Apple-style-span" face=3D"&#39;courier new&#39;, monos=
pace">20</font><span class=3D"Apple-tab-span" style=3D"white-space:pre"><fo=
nt class=3D"Apple-style-span" face=3D"&#39;courier new&#39;, monospace">	</=
font></span><font class=3D"Apple-style-span" face=3D"&#39;courier new&#39;,=
 monospace">30*</font><span class=3D"Apple-tab-span" style=3D"white-space:p=
re"><font class=3D"Apple-style-span" face=3D"&#39;courier new&#39;, monospa=
ce">	</font></span><font class=3D"Apple-style-span" face=3D"&#39;courier ne=
w&#39;, monospace">40</font><span class=3D"Apple-tab-span" style=3D"white-s=
pace:pre"><font class=3D"Apple-style-span" face=3D"&#39;courier new&#39;, m=
onospace">	</font></span><font class=3D"Apple-style-span" face=3D"&#39;cour=
ier new&#39;, monospace">50*</font><span class=3D"Apple-tab-span" style=3D"=
white-space:pre"><font class=3D"Apple-style-span" face=3D"&#39;courier new&=
#39;, monospace">	</font></span><font class=3D"Apple-style-span" face=3D"&#=
39;courier new&#39;, monospace">60</font></div>
<div><font class=3D"Apple-style-span" face=3D"&#39;courier new&#39;, monosp=
ace">100</font><span class=3D"Apple-tab-span" style=3D"white-space:pre"><fo=
nt class=3D"Apple-style-span" face=3D"&#39;courier new&#39;, monospace">	</=
font></span><font class=3D"Apple-style-span" face=3D"&#39;courier new&#39;,=
 monospace">200</font><span class=3D"Apple-tab-span" style=3D"white-space:p=
re"><font class=3D"Apple-style-span" face=3D"&#39;courier new&#39;, monospa=
ce">	</font></span><font class=3D"Apple-style-span" face=3D"&#39;courier ne=
w&#39;, monospace">300</font><span class=3D"Apple-tab-span" style=3D"white-=
space:pre"><font class=3D"Apple-style-span" face=3D"&#39;courier new&#39;, =
monospace">	</font></span><font class=3D"Apple-style-span" face=3D"&#39;cou=
rier new&#39;, monospace">400*</font><span class=3D"Apple-tab-span" style=
=3D"white-space:pre"><font class=3D"Apple-style-span" face=3D"&#39;courier =
new&#39;, monospace">	</font></span><font class=3D"Apple-style-span" face=
=3D"&#39;courier new&#39;, monospace">500</font><span class=3D"Apple-tab-sp=
an" style=3D"white-space:pre"><font class=3D"Apple-style-span" face=3D"&#39=
;courier new&#39;, monospace">	</font></span><font class=3D"Apple-style-spa=
n" face=3D"&#39;courier new&#39;, monospace">600</font></div>
<div><font class=3D"Apple-style-span" face=3D"&#39;courier new&#39;, monosp=
ace">1000</font><span class=3D"Apple-tab-span" style=3D"white-space:pre"><f=
ont class=3D"Apple-style-span" face=3D"&#39;courier new&#39;, monospace">	<=
/font></span><font class=3D"Apple-style-span" face=3D"&#39;courier new&#39;=
, monospace">2000*</font><span class=3D"Apple-tab-span" style=3D"white-spac=
e:pre"><font class=3D"Apple-style-span" face=3D"&#39;courier new&#39;, mono=
space">	</font></span><font class=3D"Apple-style-span" face=3D"&#39;courier=
 new&#39;, monospace">3000</font><span class=3D"Apple-tab-span" style=3D"wh=
ite-space:pre"><font class=3D"Apple-style-span" face=3D"&#39;courier new&#3=
9;, monospace">	</font></span><font class=3D"Apple-style-span" face=3D"&#39=
;courier new&#39;, monospace">4000</font><span class=3D"Apple-tab-span" sty=
le=3D"white-space:pre"><font class=3D"Apple-style-span" face=3D"&#39;courie=
r new&#39;, monospace">	</font></span><font class=3D"Apple-style-span" face=
=3D"&#39;courier new&#39;, monospace">5000*</font><span class=3D"Apple-tab-=
span" style=3D"white-space:pre"><font class=3D"Apple-style-span" face=3D"&#=
39;courier new&#39;, monospace">	</font></span><font class=3D"Apple-style-s=
pan" face=3D"&#39;courier new&#39;, monospace">6000*</font></div>
<div><br></div>You need to extract the group of numbers per line that have =
a * associated, the result should be like this:</div><div><br></div><div><d=
iv><font class=3D"Apple-style-span" face=3D"&#39;courier new&#39;, monospac=
e">1 2</font></div>
<div><font class=3D"Apple-style-span" face=3D"&#39;courier new&#39;, monosp=
ace">30 50</font></div><div><font class=3D"Apple-style-span" face=3D"&#39;c=
ourier new&#39;, monospace">400</font></div><div><font class=3D"Apple-style=
-span" face=3D"&#39;courier new&#39;, monospace">2000 5000 6000</font></div=
>
<div><br></div><div>Could you find a language that you obtain the same resu=
lt with less lines of code than Perl?</div><div><br></div><div><div><font c=
lass=3D"Apple-style-span" face=3D"&#39;courier new&#39;, monospace">#!/usr/=
bin/perl</font></div>
<div><font class=3D"Apple-style-span" face=3D"&#39;courier new&#39;, monosp=
ace"><br></font></div><div><font class=3D"Apple-style-span" face=3D"&#39;co=
urier new&#39;, monospace">use strict;</font></div><div><font class=3D"Appl=
e-style-span" face=3D"&#39;courier new&#39;, monospace">use warnings;</font=
></div>
<div><font class=3D"Apple-style-span" face=3D"&#39;courier new&#39;, monosp=
ace"><br></font></div><div><font class=3D"Apple-style-span" face=3D"&#39;co=
urier new&#39;, monospace">while (&lt;&gt;) {</font></div><div><font class=
=3D"Apple-style-span" face=3D"&#39;courier new&#39;, monospace"><br>
</font></div><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=
<font class=3D"Apple-style-span" face=3D"&#39;courier new&#39;, monospace">=
	</font></span><font class=3D"Apple-style-span" face=3D"&#39;courier new&#3=
9;, monospace">chomp;</font></div>
<div><font class=3D"Apple-style-span" face=3D"&#39;courier new&#39;, monosp=
ace"><br></font></div><div><span class=3D"Apple-tab-span" style=3D"white-sp=
ace:pre"><font class=3D"Apple-style-span" face=3D"&#39;courier new&#39;, mo=
nospace">	</font></span><font class=3D"Apple-style-span" face=3D"&#39;couri=
er new&#39;, monospace">my @Data =3D /(\d+)\*/g;</font></div>
<div><font class=3D"Apple-style-span" face=3D"&#39;courier new&#39;, monosp=
ace"><br></font></div><div><span class=3D"Apple-tab-span" style=3D"white-sp=
ace:pre"><font class=3D"Apple-style-span" face=3D"&#39;courier new&#39;, mo=
nospace">	</font></span><font class=3D"Apple-style-span" face=3D"&#39;couri=
er new&#39;, monospace">print &quot;@Data\n&quot;;</font></div>
<div><font class=3D"Apple-style-span" face=3D"&#39;courier new&#39;, monosp=
ace">}</font></div><div><font class=3D"Apple-style-span" face=3D"&#39;couri=
er new&#39;, monospace"><br></font></div><div><font class=3D"Apple-style-sp=
an" face=3D"&#39;courier new&#39;, monospace">__END__</font></div>
</div><div><br></div><div><br></div><div>You can do it even with a one-line=
r:</div><div><br></div><div><div><font class=3D"Apple-style-span" face=3D"&=
#39;courier new&#39;, monospace">janeiros at harlie:/media/disk$ perl -ne &#39=
;@Data =3D /(\d+)\*/g; print &quot;@Data\n&quot;&#39; data.txt</font></div>
<div><font class=3D"Apple-style-span" face=3D"&#39;courier new&#39;, monosp=
ace">1 2</font></div><div><font class=3D"Apple-style-span" face=3D"&#39;cou=
rier new&#39;, monospace">30 50</font></div><div><font class=3D"Apple-style=
-span" face=3D"&#39;courier new&#39;, monospace">400</font></div>
<div><font class=3D"Apple-style-span" face=3D"&#39;courier new&#39;, monosp=
ace">2000 5000 6000</font></div></div><div><br></div><div>From this example=
:</div><div><br></div><div>- The context, Perl=A0assigning is sensible to t=
he left part of the=A0assignment=A0sentence.</div>
<div>- The modifiers for the REGEXes, like the g in this case.</div><div>- =
The grouping for the extraction, the parentheses.</div><div><br></div>-- <b=
r><div>J. E. Aneiros</div><div>GNU/Linux User #190716 en <a href=3D"http://=
counter.li.org" target=3D"_blank">http://counter.li.org</a></div>
<div>perl -e &#39;$_=3Dpack(c5,0105,0107,0123,0132,(1&lt;&lt;3)+2);y[A-Z][N=
-ZA-M];print;&#39;</div><div>PK fingerprint: 5179 917E 5B34 F073 E11A =A0AF=
B3 4CB3 5301 4A80 F674</div><br>
</div>

--0015174bdf0a7474510490c9d25a--



More information about the Ubuntu-us-fl mailing list