sunnuntai 7. syyskuuta 2008

uudecode-image3

begin 755 /dev/stdout
M_]C_X``02D9)1@`!`0```0`!``#_VP!#``D&!P@'!@D(!P@*"@D+#18/#0P,
M#1L4%1`6(!TB(B`='Q\D*#0L)"8Q)Q\?+3TM,34W.CHZ(RL_1#\X0S0Y.C?_
MVP!#`0H*"@T,#1H/#QHW)1\E-S<W-S<W-S<W-S<W-S<W-S<W-S<W-S<W-S<W
M-S<W-S<W-S<W-S<W-S<W-S<W-S<W-S?_P``1"``A`#(#`2(``A$!`Q$!_\0`
M&@```@,!`0````````````````8#!0<$`O_$`$(0```%`@,$!@0(#P``````
M``$"`P0%``81$B$3,4%1%!4B,F%Q%F*!LP<S-#9R<Y&Q"!<C)#4W4E-6A)*4
MH;+!_\0`&`$!`0$!`0``````````````!`4&`0/_Q``T$0``!0$$!0D)````
M`````````0(#!`41(3%!%%%QD:$2$R,S-5)A@=$R-%-B<H*QTN'_V@`,`P$`
M`A$#$0`_`.^W+L;.XA5LZS2\")<JZ2Q?SAH'K@'>)R,'^!TJ@N[X-%R->M[,
M=*2$:;M;`#YE$P]7]H`Y;_.JJ.MUG&/$W;"\2MUT^ZH1FK]GB`\0&G:(F8V)
M6(Z9SJ:*IOE3=-FIT=;UBE'4@^7LY5[:4W$7;'<)2=0KJ@OR2,W&C2O7R3L/
M:1%<?B5QYV8A+L,ZGHA=><QL0Z+OX=LU=J9C>@-U=HV.5M[VFR[9RUG<3*#$
M#DD'^SVP@B8NUR&QQ'3#'4=:H[1>PZ#*4:31D]FY*GD!9`RI!,0PB&)0$,<!
MX8T1Z6A<]+^0J1H3Y49UDT&2C5A9?D$N`MEY(($?R+A1C&F-@14P"*C@>21-
MYQ\=P<ZU2/MUC#P9G,Z;JB#*8#G;"?%9T8.Z*QMXB/`A:GAYVU(]8SYU)*/Y
M,0P!PLV,!4PX`0H!@0OE25=+<+J?])E+Q1P#XI`C%;9I!R`/^[Z6J8F6OIED
ME.KU$HH4F-<RTHU=ZP^!9;<=@8/QP6TGV$[>6R%T+V4]W"BD/T,B?XK1_L5:
M*9RZ7W@30:A\-6XQU)S5J*'*FDUGSG,.!2EV0B(CP`,*?"6-#(P_6<PX?19=
M^Q<&3$X<@'`-X\J\V_"PEA`78I]<7*<F/9#`J(>W0A>8CKY!2I=%]8.3*@X3
MDY0O=6WM6G@F4=#F]8=//?0%Q([SG-Q6_,\!1;J4]"2<D/&19%=:>PK.)\1;
MO[<CB6\[DVO3TQ3R"F1WD`5"&-@!LH:@`\!&HK*MUA/],ZQ>&:D0R`4P&*&(
MF$0`-?'=5+9KMP_MJ[W;Q8Z[E06@G54-B8W;-Q&IR?J_NKZ+7WM$<@I;FICG
MG8*S53D.4IV02K%$JPO`KO4-,U9T/".2%?&E"M3Z%=ER"F!N`&TQ+YTHRKFW
M8AX+218SR2H:AVD1`Y1W"`AH8H\!"I;*^%)S&I%B[E*,E%G#)F/VE$R^WOAX
M#K3?+6U'3$,#J"RR\&81,#9,_P"6:B.\41'4!YD-]E+5`;BN=.W:G60D(J\M
M]!)2Z:5^.!^A\-@S[KZT?W$Y_4C148V?%8CA<J)?549'S!X#XT4KF:-K+>8[
MI5=^;=_`PO/T3>WU0>]"LHX444FA=0K:!USWK[4_@@_V!\T+K_E?]S5W)_,"
MZ_)M[VBBI\OMA/D*43L![ZOU&9!6V?@Y_$3?TT_N&BBKE2ZC<,NG$-3[Y:X^
-M-]]%%%9`:1/LD/_V0``
`
end

uudecode-image2

begin 644
end

uudecode-image

plain-mail

------=_Part_4874_7303390.1220819397397
Content-Type: multipart/alternative;
boundary="----=_Part_4875_4508532.1220819397397"

------=_Part_4875_4508532.1220819397397
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

T=E4m=E4 testi sis=E4lt=E4=E4 *lihavointia*, *vinokirjaita*
linkin googleen <http://google.com>

ja kuvan

------=_Part_4875_4508532.1220819397397
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

<span class=3D"gmail_quote"></span>T=E4m=E4 testi sis=E4lt=E4=E4 <b>lihavoi=
ntia</b>, <i>vinokirjaita</i><br><div dir=3D"ltr">linkin <a href=3D"http://=
google.com" target=3D"_blank" onclick=3D"return top.js.OpenExtLink(window,e=
vent,this)">googleen</a><br>
<br>ja kuvan<br><br><br></div>
<br clear=3D"all">

------=_Part_4875_4508532.1220819397397--

------=_Part_4874_7303390.1220819397397
Content-Type: image/jpeg; name=PuzzlesForBlondes07.jpg
Content-Transfer-Encoding: base64
X-Attachment-Id: f_fku3v4be0
Content-Disposition: attachment; filename=PuzzlesForBlondes07.jpg

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
------=_Part_4874_7303390.1220819397397--

unix-command-a2p

Content-type: text/html

<HTML><HEAD><TITLE>Manpage of A2P</TITLE>
</HEAD><BODY>
<H1>A2P</H1>
Section: Perl Programmers Reference Guide (1)<BR>Updated: 2005-04-04<BR><A HREF="#index">Index</A>
<A HREF="http://localhost/cgi-bin/man/man2html">Return to Main Contents</A><HR>

<A NAME="lbAB">&nbsp;</A>
<H2>NAME</H2>

a2p - Awk to Perl translator
<A NAME="lbAC">&nbsp;</A>
<H2>SYNOPSIS</H2>

<A NAME="ixAAC"></A>
<B>a2p</B> [<I>options</I>] [<I>filename</I>]
<A NAME="lbAD">&nbsp;</A>
<H2>DESCRIPTION</H2>

<A NAME="ixAAD"></A>
<I>A2p</I> takes an awk script specified on the command line (or from
standard input) and produces a comparable <I>perl</I> script on the
standard output.
<A NAME="lbAE">&nbsp;</A>
<H2><FONT SIZE="-1">OPTIONS</FONT></H2>

<A NAME="ixAAE"></A>
Options include:
<DL COMPACT>
<DT><B>-D&lt;number&gt;</B><DD>
<A NAME="ixAAF"></A>
sets debugging flags.
<DT><B>-F&lt;character&gt;</B><DD>
<A NAME="ixAAG"></A>
tells a2p that this awk script is always invoked with this <B>-F</B>
switch.
<DT><B>-n&lt;fieldlist&gt;</B><DD>
<A NAME="ixAAH"></A>
specifies the names of the input fields if input does not have to be
split into an array. If you were translating an awk script that
processes the password file, you might say:


<P>


<PRE>
a2p -7 -nlogin.password.uid.gid.gcos.shell.home

</PRE>


<P>


Any delimiter can be used to separate the field names.
<DT><B>-&lt;number&gt;</B><DD>
<A NAME="ixAAI"></A>
causes a2p to assume that input will always have that many fields.
<DT><B>-o</B><DD>
<A NAME="ixAAJ"></A>
tells a2p to use old awk behavior. The only current differences are:
<DL COMPACT><DT><DD>
<DL COMPACT>
<DT>*<DD>
Old awk always has a line loop, even if there are no line
actions, whereas new awk does not.
<DT>*<DD>
In old awk, sprintf is extremely greedy about its arguments.
For example, given the statement


<P>


<PRE>
print sprintf(some_args), extra_args;

</PRE>


<P>


old awk considers <I>extra_args</I> to be arguments to <TT>&quot;sprintf&quot;</TT>; new awk
considers them arguments to <TT>&quot;print&quot;</TT>.
</DL>
</DL>

<DL COMPACT><DT><DD>
</DL>

</DL>
<A NAME="lbAF">&nbsp;</A>
<H2>Considerations</H2>

<A NAME="ixAAK"></A>
A2p cannot do as good a job translating as a human would, but it
usually does pretty well. There are some areas where you may want to
examine the perl script produced and tweak it some. Here are some of
them, in no particular order.
<P>

There is an awk idiom of putting <I>int()</I> around a string expression to
force numeric interpretation, even though the argument is always
integer anyway. This is generally unneeded in perl, but a2p can't
tell if the argument is always going to be integer, so it leaves it
in. You may wish to remove it.
<P>

Perl differentiates numeric comparison from string comparison. Awk
has one operator for both that decides at run time which comparison to
do. A2p does not try to do a complete job of awk emulation at this
point. Instead it guesses which one you want. It's almost always
right, but it can be spoofed. All such guesses are marked with the
comment &quot;<TT>&quot;#???&quot;</TT>&quot;. You should go through and check them. You might
want to run at least once with the <B>-w</B> switch to perl, which will
warn you if you use == where you should have used eq.
<P>

Perl does not attempt to emulate the behavior of awk in which
nonexistent array elements spring into existence simply by being
referenced. If somehow you are relying on this mechanism to create
null entries for a subsequent for...in, they won't be there in perl.
<P>

If a2p makes a split line that assigns to a list of variables that
looks like (Fld1, Fld2, Fld3...) you may want to rerun a2p using the
<B>-n</B> option mentioned above. This will let you name the fields
throughout the script. If it splits to an array instead, the script
is probably referring to the number of fields somewhere.
<P>

The exit statement in awk doesn't necessarily exit; it goes to the <FONT SIZE="-1">END</FONT>
block if there is one. Awk scripts that do contortions within the <FONT SIZE="-1">END</FONT>
block to bypass the block under such circumstances can be simplified
by removing the conditional in the <FONT SIZE="-1">END</FONT> block and just exiting directly
from the perl script.
<P>

Perl has two kinds of array, numerically-indexed and associative.
Perl associative arrays are called ``hashes''. Awk arrays are usually
translated to hashes, but if you happen to know that the index is
always going to be numeric you could change the {...} to [...].
Iteration over a hash is done using the <I>keys()</I> function, but iteration
over an array is <FONT SIZE="-1">NOT</FONT>. You might need to modify any loop that iterates
over such an array.
<P>

Awk starts by assuming <FONT SIZE="-1">OFMT</FONT> has the value %.6g. Perl starts by
assuming its equivalent, $#, to have the value %.20g. You'll want to
set $# explicitly if you use the default value of <FONT SIZE="-1">OFMT</FONT>.
<P>

Near the top of the line loop will be the split operation that is
implicit in the awk script. There are times when you can move this
down past some conditionals that test the entire record so that the
split is not done as often.
<P>

For aesthetic reasons you may wish to change the array base $[ from 1
back to perl's default of 0, but remember to change all array
subscripts <FONT SIZE="-1">AND</FONT> all <I>substr()</I> and <I>index()</I> operations to match.
<P>

Cute comments that say ``# Here is a workaround because awk is dumb''
are passed through unmodified.
<P>

Awk scripts are often embedded in a shell script that pipes stuff into
and out of awk. Often the shell script wrapper can be incorporated
into the perl script, since perl can start up pipes into and out of
itself, and can do other things that awk can't do by itself.
<P>

Scripts that refer to the special variables <FONT SIZE="-1">RSTART</FONT> and <FONT SIZE="-1">RLENGTH</FONT> can
often be simplified by referring to the variables $`, $&amp; and $', as
long as they are within the scope of the pattern match that sets them.
<P>

The produced perl script may have subroutines defined to deal with
awk's semantics regarding getline and print. Since a2p usually picks
correctness over efficiency. it is almost always possible to rewrite
such code to be more efficient by discarding the semantic sugar.
<P>

For efficiency, you may wish to remove the keyword from any return
statement that is the last statement executed in a subroutine. A2p
catches the most common case, but doesn't analyze embedded blocks for
subtler cases.
<P>

ARGV[0] translates to <TT>$ARGV0</TT>, but ARGV[n] translates to <TT>$ARGV</TT>[$n]. A
loop that tries to iterate over ARGV[0] won't find it.
<A NAME="lbAG">&nbsp;</A>
<H2>ENVIRONMENT</H2>

<A NAME="ixAAL"></A>
A2p uses no environment variables.
<A NAME="lbAH">&nbsp;</A>
<H2>AUTHOR</H2>

<A NAME="ixAAM"></A>
Larry Wall &lt;<I><A HREF="mailto:larry@wall.org">larry@wall.org</A></I>&gt;
<A NAME="lbAI">&nbsp;</A>
<H2>FILES</H2>

<A NAME="ixAAN"></A>
<A NAME="lbAJ">&nbsp;</A>
<H2>SEE ALSO</H2>

<A NAME="ixAAO"></A>


<PRE>
perl The perl compiler/interpreter

</PRE>


<P>

<PRE>
s2p sed to perl translator

</PRE>


<A NAME="lbAK">&nbsp;</A>
<H2>DIAGNOSTICS</H2>

<A NAME="ixAAP"></A>
<A NAME="lbAL">&nbsp;</A>
<H2>BUGS</H2>

<A NAME="ixAAQ"></A>
It would be possible to emulate awk's behavior in selecting string
versus numeric operations at run time by inspection of the operands,
but it would be gross and inefficient. Besides, a2p almost always
guesses right.
<P>

Storage for the awk syntax tree is currently static, and can run out.
<P>

<HR>
<A NAME="index">&nbsp;</A><H2>Index</H2>
<DL>
<DT><A HREF="#lbAB">NAME</A><DD>
<DT><A HREF="#lbAC">SYNOPSIS</A><DD>
<DT><A HREF="#lbAD">DESCRIPTION</A><DD>
<DT><A HREF="#lbAE"><FONT SIZE="-1">OPTIONS</FONT></A><DD>
<DT><A HREF="#lbAF">Considerations</A><DD>
<DT><A HREF="#lbAG">ENVIRONMENT</A><DD>
<DT><A HREF="#lbAH">AUTHOR</A><DD>
<DT><A HREF="#lbAI">FILES</A><DD>
<DT><A HREF="#lbAJ">SEE ALSO</A><DD>
<DT><A HREF="#lbAK">DIAGNOSTICS</A><DD>
<DT><A HREF="#lbAL">BUGS</A><DD>
</DL>
<HR>
This document was created by
<A HREF="http://localhost/cgi-bin/man/man2html">man2html</A>,
using the manual pages.<BR>
Time: 18:49:26 GMT, September 07, 2008
</BODY>
</HTML>