<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>transfixed but not dead! &#187; rakudo</title>
	<atom:link href="http://transfixedbutnotdead.com/tag/rakudo/feed/" rel="self" type="application/rss+xml" />
	<link>http://transfixedbutnotdead.com</link>
	<description>my ramblings on life, work &#38; anything left in-between</description>
	<lastBuildDate>Fri, 03 Feb 2012 16:03:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='transfixedbutnotdead.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/0a317653027efb1ab2bf8adde3dcb067?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>transfixed but not dead! &#187; rakudo</title>
		<link>http://transfixedbutnotdead.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://transfixedbutnotdead.com/osd.xml" title="transfixed but not dead!" />
	<atom:link rel='hub' href='http://transfixedbutnotdead.com/?pushpress=hub'/>
		<item>
		<title>Perl6 metaprogramming update</title>
		<link>http://transfixedbutnotdead.com/2010/10/31/perl6-metaprogramming-update/</link>
		<comments>http://transfixedbutnotdead.com/2010/10/31/perl6-metaprogramming-update/#comments</comments>
		<pubDate>Sun, 31 Oct 2010 20:32:32 +0000</pubDate>
		<dc:creator>draegtun</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[metaprogramming]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[perl6]]></category>
		<category><![CDATA[rakudo]]></category>

		<guid isPermaLink="false">http://transfixedbutnotdead.com/?p=1103</guid>
		<description><![CDATA[This post is an update to my Anyone for Perl 6 metaprogramming? article and gist using Rakudo Star (October 2010 release). Now I expected one change to the code and one optional improvement that I could now make. However along with these I got two extra enforced changes. Re-opening a class First the expected change [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=transfixedbutnotdead.com&amp;blog=351142&amp;post=1103&amp;subd=draegtun&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This post is an update to my <a href="http://transfixedbutnotdead.com/2010/01/14/anyone-for-perl-6-metaprogramming/">Anyone for Perl 6 metaprogramming?</a> article and <a href="http://gist.github.com/276591">gist</a> using <a href="http://rakudo.org/">Rakudo Star</a> (October 2010 release).</p>
<p>Now I expected one change to the code and one optional improvement that I could now make.  However along with these I got two extra enforced changes.</p>
<h1>Re-opening a class</h1>
<p>First the expected change to re-opening a class:<br />
<pre class="brush: perl;">
class Ninja is also { ... }

# is now...

augment class Ninja { ... }
</pre></p>
<p>However for this to work I needed to add the following:<br />
<pre class="brush: perl;">
use MONKEY_TYPING;
</pre></p>
<p>A pragmatic addition.  If you&#8217;re gonna shoot yourself in the foot then at least you have to prepare for it in advance <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>NB. Rakudo nicely gave me a fatal warning when I tried to re-open the class and politely told me that <code>use MONKEY_TYPING</code> was needed it I wanted to <code>augment class Ninja</code>.</p>
<h1>Applying a role to an object (instance)</h1>
<p>Now the next change was optional but it was a more succinct way to add a role to an object.  Previously I had to create a role and then apply it to object:<br />
<pre class="brush: perl;">
role ThrowStar {
  method throw_star { say &quot;throwing star&quot; }
}

$drew does ThrowStar;
</pre></p>
<p>Now with Rakudo Star I can apply an anonymous role directly:<br />
<pre class="brush: perl;">
$drew does role {
  method throw_star { say &quot;throwing star&quot; }
};
</pre></p>
<h1>Something I didn&#8217;t expect</h1>
<p>The final change to the code was something unexpected.  I got the following error:<br />
<code><br />
===SORRY!===<br />
Quoted method name requires parenthesized arguments at line 50, near ";     # =&gt;"<br />
</code></p>
<p>This was tied to this line of code:<br />
<pre class="brush: perl;">
$drew.'battle_cry';     # =&gt; Drew says zing!!!
</pre></p>
<p>I am not sure if this is a change to Perl6 spec but it now requires extra parenthesis:<br />
<pre class="brush: perl;">
$drew.'battle_cry'();     # =&gt; Drew says zing!!!
</pre></p>
<h1>&#8230; and finally</h1>
<p>My original post from beginning of the year was me just kicking the Rakudo tyres.  I&#8217;m now looking forward to taking it out for a proper test drive around the block <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   </p>
<p>Below is the complete revised code:</p>
<p><pre class="brush: perl;">
use v6;
use MONKEY_TYPING;

class Ninja {
    has Str $.name is rw;
}

my Ninja $drew .= new( name =&gt; 'Drew' );
my Ninja $adam .= new( name =&gt; 'Adam' );


###########################################################
# Reopen Ninja class (&quot;is also&quot; does the biz) 
# and add 'battle_cry' method

augment class Ninja {
    method battle_cry {
        say $.name ~ ' says zing!!!'; 
    }
}

$drew.battle_cry;   # =&gt; Drew says zing!!!
$adam.battle_cry;   # =&gt; Adam says zing!!!


###########################################################
# add 'throw_star' method to $drew object by 
# applying (&quot;does&quot;) role to it (Singleton method)

$drew does role {
    method throw_star { say &quot;throwing star&quot; }
};

$drew.throw_star;     # =&gt; throwing a star


###########################################################
# call method dynamically

$drew.'battle_cry'();     # =&gt; Drew says zing!!!


###########################################################
# add &quot;colour&quot; method closing over $colour_name (ie. closure):

my $colour_name = 'black';

augment class Ninja {
    method colour { say &quot;{$.name}'s colour is $colour_name&quot; }
}

$drew.colour;    # =&gt; Drew's colour is black
$adam.colour;    # =&gt; Adam's colour is black
 
 
###########################################################

# &quot;defining a method dynamically on an instance that closes 
# over local scope and accesses the instance’s state&quot;
#
# Opps - Class method slipped in while working it out.
# $drew.^add_method() does a singleton method.. nice!

my $sword_symbol = '********';

$drew.^add_method( 'swing', method ( Str $sound_effect ) { 
    say &quot;$.name: $sword_symbol $sound_effect&quot;;
} );

$drew.swing( 'slash!!' );
</pre></p>
<p>Happy halloween!</p>
<p>/I3az/</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/draegtun.wordpress.com/1103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/draegtun.wordpress.com/1103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/draegtun.wordpress.com/1103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/draegtun.wordpress.com/1103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/draegtun.wordpress.com/1103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/draegtun.wordpress.com/1103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/draegtun.wordpress.com/1103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/draegtun.wordpress.com/1103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/draegtun.wordpress.com/1103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/draegtun.wordpress.com/1103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/draegtun.wordpress.com/1103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/draegtun.wordpress.com/1103/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/draegtun.wordpress.com/1103/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/draegtun.wordpress.com/1103/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=transfixedbutnotdead.com&amp;blog=351142&amp;post=1103&amp;subd=draegtun&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://transfixedbutnotdead.com/2010/10/31/perl6-metaprogramming-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/29cb106071d163d703484e63839d89cb?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">draegtun</media:title>
		</media:content>
	</item>
		<item>
		<title>Anyone for Perl 6 metaprogramming?</title>
		<link>http://transfixedbutnotdead.com/2010/01/14/anyone-for-perl-6-metaprogramming/</link>
		<comments>http://transfixedbutnotdead.com/2010/01/14/anyone-for-perl-6-metaprogramming/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 22:11:36 +0000</pubDate>
		<dc:creator>draegtun</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[metaprogramming]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[perl6]]></category>
		<category><![CDATA[rakudo]]></category>

		<guid isPermaLink="false">http://transfixedbutnotdead.com/?p=823</guid>
		<description><![CDATA[My last post about the Metaprogramming: Ruby vs. Javascript blog post stirred a little thought in my head: How would it look in Perl 6? Well here goes, the complete example written in Perl 6 which runs on Rakudo, an implementation of the Perl 6 spec on the Parrot VM: Of all the examples (in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=transfixedbutnotdead.com&amp;blog=351142&amp;post=823&amp;subd=draegtun&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>My <a href="http://transfixedbutnotdead.com/2010/01/13/anyone_for_metaprogramming/">last post</a> about the <a href="http://fingernailsinoatmeal.com/post/292301859/metaprogramming-ruby-vs-javascript">Metaprogramming: Ruby vs. Javascript</a> blog post stirred a little thought in my head:</p>
<blockquote><p>How would it look in Perl 6?</p></blockquote>
<p>Well here goes, the complete example written in <a href="http://en.wikipedia.org/wiki/Perl_6">Perl 6</a> which runs on <a href="http://www.rakudo.org/">Rakudo</a>, an implementation of the Perl 6 spec on the <a href="http://en.wikipedia.org/wiki/Parrot_virtual_machine">Parrot VM</a>:</p>
<p><pre class="brush: perl;">
use v6;

class Ninja {
    has Str $.name is rw;
}

my Ninja $drew .= new( name =&gt; 'Drew' );
my Ninja $adam .= new( name =&gt; 'Adam' );


###########################################################
# Reopen Ninja class (&quot;is also&quot; does the biz) 
# and add 'battle_cry' method

class Ninja is also {    
    method battle_cry {
        say $.name ~ ' says zing!!!'; 
    }
}

$drew.battle_cry;   # =&gt; Drew says zing!!!
$adam.battle_cry;   # =&gt; Adam says zing!!!


###########################################################
# add 'throw_star' method to $drew object by creating
# and applying (&quot;does&quot;) role to it (Singleton method)

role ThrowStar {
    method throw_star { say &quot;throwing star&quot; }
}

$drew does ThrowStar;
$drew.throw_star;     # =&gt; throwing a star


###########################################################
# call method dynamically: $obj.'method_name' or $obj.$method

$drew.'battle_cry';     # =&gt; Drew says zing!!!


###########################################################
# add &quot;colour&quot; method closing over $colour_name (ie. closure):

my $colour_name = 'black';

class Ninja is also {
    method colour { say &quot;{$.name}'s colour is {$colour_name} &quot; }
}

$drew.colour;    # =&gt; Drew's colour is black
$adam.colour;    # =&gt; Adam's colour is black


###########################################################

# &quot;defining a method dynamically on an instance that closes 
# over local scope and accesses the instance’s state&quot;

my $sword_symbol = '********';

$drew.^add_method( 'swing', method ( Str $sound_effect ) { 
    say &quot;{$.name}: {$sword_symbol} {$sound_effect}&quot;;
});

$drew.swing( 'slash!!' );    # =&gt; Drew: ********* slash!!
</pre></p>
<p>Of all the examples (in Perl 5 / Moose, Ruby, Javascript &amp; <a href="http://codeblog.dhananjaynene.com/2010/01/dynamically-adding-methods-with-metaprogramming-ruby-and-python/">Python</a>) I think this one is the most clean and intuitive.  Perl 6 has a good future if it keeps this up!</p>
<p>And it all went surprising smoothly.  There were a couple of bumps in my Perl 6 road but these are all connected to the flux between the Perl 6 spec, Rakudo and knowing what info you find on the web is still accurate (or not). </p>
<p>First bump was how to re-open a class.  Most Perl 6 documentation implied that classes were always open (unless <code>is final</code> was used).  This no longer seemed to be the case and it gave examples of <code>class A is augmented { ... }</code>.  However this didn&#8217;t work in Rakudo but eventually I came across <code>is also</code> which did.</p>
<p>I like the look of <code>class A is also { ... }</code>.  However <a href="http://perlgeek.de/en/">Moritz</a> on IRC #perl6 mentioned that the Perl 6 spec had changed so my example would need to be:<br />
<pre class="brush: perl;">
augment class Ninja {    
    method battle_cry {
        say $.name ~ ' says zing!!!'; 
    }
}
</pre></p>
<p>Rakudo is currently a bit behind Perl 6 spec here but above will replace <code>is also</code> shortly.  The change to <em>augment</em> makes sense because it avoids any confusion with roles in the class declaration.</p>
<p>The second bump was how to create a method dynamically.  Now being familiar with Moose I had expected the following to work:<br />
<pre class="brush: perl;">
Ninja.meta.add_method( 'swing', method ( Str $sound_effect ) { 
    say &quot;{$.name}: {$sword_symbol} {$sound_effect}&quot;;
});
</pre></p>
<p>And according to most Perl 6 docs <code>.meta</code> was the method to access the metaclass (MOP).  However <em>meta</em> produced a method not defined error <img src='http://s0.wp.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>Trawling the web further I did find that you could do:<br />
<pre class="brush: perl;">
Ninja.swing = method { say &quot;Changed to zing&quot; };
</pre></p>
<p>But this only allowed you to redefine a method, not create a new one.</p>
<p>Luckily IRC #perl6 came to the rescue again!  <a href="http://github.com/jnthn">jnthn</a> &amp; Moritz pointed me to <code>$object.^add_method( ... )</code> and the <a href="http://github.com/rakudo/rakudo/blob/ng/docs/metamodel.pod#">docs on the ng branch</a> of <a href="http://github.com/rakudo/rakudo">Rakudo</a> on Github.</p>
<p>Perl6 does have some beautiful syntax.  I love the <code>$drew does Throwstar</code> line.  Soon Rakudo will be able to do:<br />
<pre class="brush: perl;">
$drew does role {
    method throw_star { say &quot;throwing star&quot; }
};
</pre></p>
<p>So this, <em>augment</em> and probably lots more will be part of the <a href="http://github.com/rakudo/rakudo/tree/ng">ng branch</a> which will be merged with the Rakudo master in the not too distant future.</p>
<p>/I3az/</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/draegtun.wordpress.com/823/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/draegtun.wordpress.com/823/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/draegtun.wordpress.com/823/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/draegtun.wordpress.com/823/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/draegtun.wordpress.com/823/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/draegtun.wordpress.com/823/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/draegtun.wordpress.com/823/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/draegtun.wordpress.com/823/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/draegtun.wordpress.com/823/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/draegtun.wordpress.com/823/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/draegtun.wordpress.com/823/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/draegtun.wordpress.com/823/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/draegtun.wordpress.com/823/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/draegtun.wordpress.com/823/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=transfixedbutnotdead.com&amp;blog=351142&amp;post=823&amp;subd=draegtun&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://transfixedbutnotdead.com/2010/01/14/anyone-for-perl-6-metaprogramming/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/29cb106071d163d703484e63839d89cb?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">draegtun</media:title>
		</media:content>
	</item>
		<item>
		<title>Best things in life come in threes</title>
		<link>http://transfixedbutnotdead.com/2009/11/08/best-things-in-life-come-in-threes/</link>
		<comments>http://transfixedbutnotdead.com/2009/11/08/best-things-in-life-come-in-threes/#comments</comments>
		<pubDate>Sun, 08 Nov 2009 20:48:18 +0000</pubDate>
		<dc:creator>draegtun</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Padre]]></category>
		<category><![CDATA[parrot]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[perl 5.10]]></category>
		<category><![CDATA[perl6]]></category>
		<category><![CDATA[rakudo]]></category>

		<guid isPermaLink="false">http://transfixedbutnotdead.com/?p=675</guid>
		<description><![CDATA[Following on from my last post it seems I have also been waiting for a kind of virtual conjunction between Perl 5.10.1, Parrot 1.0 &#38; Padre being a year old. Perl 5.10.1 Currently I run 5.8.8 in production on all servers that I manage. I do have Perl 5.10.0 running locally on my Mac but [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=transfixedbutnotdead.com&amp;blog=351142&amp;post=675&amp;subd=draegtun&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Following on from my <a href="http://transfixedbutnotdead.com/2009/10/31/patience-is-a-virtue-2/">last post</a>  it seems I have also been waiting for a kind of virtual conjunction between <a href="http://www.h-online.com/open/news/item/Perl-5-10-1-released-743063.html">Perl 5.10.1</a>, <a href="http://perlbuzz.com/2009/03/parrot-100-has-been-released.html">Parrot 1.0</a> &amp; <a href="http://onionstand.blogspot.com/2009/07/on-padres-birthday-gift-to-you-042.html">Padre being a year old</a>.</p>
<p><strong>Perl 5.10.1</strong></p>
<p>Currently I run 5.8.8 in production on all servers that I manage.  I do have Perl 5.10.0 running locally on my Mac but only for playing with.  </p>
<p>So first step is to load Perl 5.10.1 on my Mac (Tiger) alongside my other Perl&#8217;s and then start testing &amp; with the plan to roll it out to replace 5.8.8 in the not too distant future.  </p>
<p>These are my steps to load 5.10.1 locally so that it doesn&#8217;t conflict with any other Perl I have here:</p>
<ul>
<li>Download &amp; unpack Perl source code in my normal user login</li>
<li>./Configure -de -Dusethreads -Dprefix=~/local/Perl/perl-5.10.1/</li>
<li>gmake</li>
<li>gmake test</li>
<li>gmake install-all</li>
</ul>
<p>I now have Perl 5.10.1 running out of my $HOME directory.   </p>
<p>This all worked fine except the default location of .cpan directory was in $HOME (~/.cpan).   This could clash with other locally installed Perl if nothing is done so I amended everything in cpan shell to use ~/local/Perl/perl-5.10.1/.cpan instead (I did this using &#8220;o conf&#8221;).</p>
<p>I then quickly blasted my new local Perl 5.10.1 with a few CPAN modules which included:</p>
<ul>
<li>Moose</li>
<li>MooseX::Declare</li>
<li>autobox::Core</li>
<li>DateTime</li>
<li>XML::LibXML</li>
<li>Devel::REPL</li>
</ul>
<p>All modules I selected installed without a single hitch.   CPAN comes up trumps again!</p>
<p>Devel::REPL was of great interest to me because when I last tried to install this on 5.8.8 &amp; 5.10.0 I did have some problems.   </p>
<p>This time it installed &amp; worked wonderfully.  Only slight issue was there was no command line history? (ie. readline).   This was easily resolved by loading Bundle::CPAN (which also gave cpan shell history as well!)</p>
<p><strong>Padre</strong></p>
<p>Normally I don&#8217;t compile Perl with threads.   However I needed it for Padre, which is something I forgot about when I last tried installing Padre on my local 5.10.0 <img src='http://s0.wp.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>I installed the following CPAN modules into my new Perl 5.10.1:</p>
<ul>
<li>Alien::wxWidgets</li>
<li>Wx</li>
<li>Padre</li>
</ul>
<p>All compiled &amp; installed seamlessly.   On starting Padre I got a nice pretty butterfly splash screen but then unfortunately it crashed <img src='http://s0.wp.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>As with most things in life if you not starting off with a clean slate then it may cause problems.  I had some residue stuff from previous attempt that was part of the problem.</p>
<p>Two things were needed resolve this stumbling block:</p>
<ul>
<li>Remove WxWidget which was installed via <a href="http://www.macports.org/">MacPorts</a>  (<code>sudo port deactivate wxWidgets</code>) </li>
<li>Make sure new Perl 5.10.1 was first Perl in $PATH env variable.  Because even though I was running 5.10.1 CPAN shell the Wx module seemed fixated on picking up Alien::wxWidgets from the first Perl it could get its hands on <img src='http://s2.wp.com/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' />  </li>
</ul>
<p>After this reinstalling the Wx &amp; Padre modules gave me a fully functional Padre.</p>
<p><strong>Parrot 1.0 / Rakudo / Perl6</strong></p>
<p>I was now using Padre 0.48 to edit &amp; run my Perl 5.10.1 code.   Want I wanted now was to add Perl6 into the mix.   </p>
<p>For this I just followed the <a href="http://rakudo.org/how-to-get-rakudo">instructions from Rakudo site</a> and installed it in my local user dir with no hitch at all.</p>
<p>Next in Perl 5.10.1 I installed the <a href="http://search.cpan.org/dist/Padre-Plugin-Perl6/">Padre::Plugin::Perl6</a> to make Padre Perl6 aware.  My first bit of Perl6 code ran from Padre &amp; command line perfectly (don&#8217;t forget to add your rakudo path to $PATH env):</p>
<p><pre class="brush: perl;">
use v6;

for 1..10 { .say }

class Dog {
    method bark { &quot;woof&quot; }
}

my Dog $rover .= new;
my $spot = Dog.new;

say $rover.bark;
say $spot.bark;
</pre></p>
<p>&nbsp;</p>
<p>So where do I stand with <a href="http://padre.perlide.org/">Padre</a>?  Well I do love my <a href="http://macromates.com/">Textmate</a> so it is going to be hard to tug me away from it.  </p>
<p>But I love the idea of an editor being hosted and extensible in Perl.  So come my next round of free time I may find the tugging from Padre just to strong to resist <img src='http://s1.wp.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>/I3az/</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/draegtun.wordpress.com/675/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/draegtun.wordpress.com/675/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/draegtun.wordpress.com/675/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/draegtun.wordpress.com/675/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/draegtun.wordpress.com/675/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/draegtun.wordpress.com/675/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/draegtun.wordpress.com/675/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/draegtun.wordpress.com/675/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/draegtun.wordpress.com/675/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/draegtun.wordpress.com/675/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/draegtun.wordpress.com/675/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/draegtun.wordpress.com/675/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/draegtun.wordpress.com/675/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/draegtun.wordpress.com/675/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=transfixedbutnotdead.com&amp;blog=351142&amp;post=675&amp;subd=draegtun&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://transfixedbutnotdead.com/2009/11/08/best-things-in-life-come-in-threes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/29cb106071d163d703484e63839d89cb?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">draegtun</media:title>
		</media:content>
	</item>
	</channel>
</rss>
