<?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>marcus ramberg &#187; Catalyst</title>
	<atom:link href="http://marcus.nordaaker.com/tag/catalyst/feed/" rel="self" type="application/rss+xml" />
	<link>http://marcus.nordaaker.com</link>
	<description>nordaaker</description>
	<lastBuildDate>Sat, 31 Dec 2011 23:20:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Catalyst cares about your old code</title>
		<link>http://marcus.nordaaker.com/2009/09/catalyst-cares-about-your-old-code/</link>
		<comments>http://marcus.nordaaker.com/2009/09/catalyst-cares-about-your-old-code/#comments</comments>
		<pubDate>Fri, 04 Sep 2009 08:21:31 +0000</pubDate>
		<dc:creator>marcus</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[Catalyst]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[QA]]></category>

		<guid isPermaLink="false">http://marcus.nordaaker.com/?p=2962</guid>
		<description><![CDATA[09:52 < @rafl> wow.. you can actually see how old that code is 10:00 < @rafl> but it still runs without a single modification. nice! 10:00 < @rafl> catalyst++ 10:14 < @marcus> rafl: try that with rails :) 10:14 < @rafl> no, thanks Code rot is everywhere, but some platforms suffer more than others. Even [...]]]></description>
			<content:encoded><![CDATA[<pre>
09:52 < @rafl> wow.. you can actually see how old that code is
10:00 < @rafl> but it still runs without a single modification. nice!
10:00 < @rafl> catalyst++
10:14 < @marcus> rafl: try that with rails :)
10:14 < @rafl> no, thanks
</pre>
<p>Code rot is everywhere, but some platforms suffer more than others. Even <a href="http://wordaligned.org/articles/code-rot">Simple C++ code suffers from code rot</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://marcus.nordaaker.com/2009/09/catalyst-cares-about-your-old-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Catalyst::Plugin::AutoCRUD</title>
		<link>http://marcus.nordaaker.com/2009/09/catalystpluginautocrud/</link>
		<comments>http://marcus.nordaaker.com/2009/09/catalystpluginautocrud/#comments</comments>
		<pubDate>Tue, 01 Sep 2009 23:17:14 +0000</pubDate>
		<dc:creator>marcus</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[Catalyst]]></category>
		<category><![CDATA[crud]]></category>
		<category><![CDATA[extensions]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://marcus.nordaaker.com/?p=2892</guid>
		<description><![CDATA[One major factor in Catalyst&#8217;s success has been extensibility. I plan to do a series on extensions that I&#8217;ve found useful recently. To kick it off, I&#8217;ll feature a model which gives me a simple and useful admin interface to my DBIx::Class models. When I first got involved with MVC Web Frameworks like Maypole and [...]]]></description>
			<content:encoded><![CDATA[<p><em>One major factor in Catalyst&#8217;s success has been extensibility. I plan to<br />
do a series on extensions that I&#8217;ve found useful recently. To kick it off,<br />
I&#8217;ll feature a model which gives me a simple and useful admin interface to<br />
my DBIx::Class models.</em></p>
<p>When I first got involved with MVC Web Frameworks like Maypole and Ruby on<br />
Rails, a big selling point was the ability to generate CRUD (Create/Read/<br />
Update/Delete) interfaces to your data model. Ruby on Rails does this through<br />
a mechanism called scaffolding, where it adds a set of actions to your<br />
controller. It soon became apparent that these CRUD frameworks did not live<br />
up to their promise as a base for creating your own custom actions. Usually,<br />
you spend more time customizing these controllers than you would just<br />
implementing the features you require.</p>
<p>However, there is still a good use for these for giving your admins a<br />
direct interface to your data model. There has been several iterations of<br />
these tools for the Catalyst framework, but with Catalyst::Plugin::AutoCRUD,<br />
I&#8217;ve finally found something easy to plug into your existing app, which<br />
integrates well with most setups.</p>
<p><img src="http://marcus.nordaaker.com/wp-content/uploads/2009/09/autocrud.png" alt="autocrud" title="autocrud" width="500" height="306" class="size-full wp-image-2942" /></p>
<p>For most apps, all you need to do is plug it into the main application class<br />
by adding AutoCRUD to your list of plugins. This will plug a complete CRUD<br />
application, including controllers and view and templates into your app.<br />
By default it will attach itself at &#8216;/autocrud&#8217;, but you can easily change<br />
that in config. Just add this to your config file:</p>
<pre>
<plugin ::AutoCRUD>
      basepath admin
</plugin></pre>
<p>and it will respond to /admin/* instead. Another common requirement is to<br />
add authentication for the admin interface. One way to accomplish that is<br />
by using Catalyst&#8217;s auto handler functionality. Add a method like this in<br />
your Root controller</p>
<pre>sub auto :Private {
    my ( $self, $c ) = @_;
    if ($c->action->reverse =~ /^autocrud\//) {
        $c->authenticate({},'users');
    }
    return 1;
}</pre>
<p>Note that my example is using HTTP Basic auth. The actual authenticate call<br />
needs to be customized for your realm.</p>
<p>AutoCRUD supports multiple DBIC Schemas, and if will automatically provide you<br />
with a list to let you pick which one to work with. After that, you choose<br />
a Result class, and you have access to an extensive AJAX-enhanched database<br />
admin tool. You can search and browse data, as well as edit it and add new<br />
rows easily. AutoCRUD also understands your DBIC relationships, so you can<br />
easily see data related to the current rows.</p>
<p>Like it&#8217;s predecessors, I do not recommend trying to make this tool<br />
into a generic &#8216;allweb&#8217;-application. However, if you use it for what it is,<br />
you can save countless of development hours making trivial admin tools. Since<br />
it works again your DBIC Schema, you&#8217;ll also get the advantage of keeping<br />
your business logic in the data model. Things like DBIC timestamps will<br />
Just Work.</p>
<p><em>There still might be some polishing left to do on AutoCRUD, but I already<br />
find it a hugely useful tool.   You can install it just like you would any other CPAN module using </p>
<p><code>$ cpan Catalyst::Plugin::AutoCRUD</code></em></p>
]]></content:encoded>
			<wfw:commentRss>http://marcus.nordaaker.com/2009/09/catalystpluginautocrud/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Model adaptors for Catalyst.</title>
		<link>http://marcus.nordaaker.com/2009/08/model-adaptors-for-catalyst/</link>
		<comments>http://marcus.nordaaker.com/2009/08/model-adaptors-for-catalyst/#comments</comments>
		<pubDate>Thu, 06 Aug 2009 23:51:37 +0000</pubDate>
		<dc:creator>marcus</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[Catalyst]]></category>
		<category><![CDATA[model dbix::class]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://marcus.nordaaker.com/?p=2767</guid>
		<description><![CDATA[In a recent post Dave Rolsky points out some of his own best practices for Catalyst. While I&#8217;ve come around to agree with his first point, that Catalyst should generate a reusable config class for the user, I&#8217;m not so sure with regards to his model viewpoints. For me, the strength of Catalyst&#8217;s Model layer [...]]]></description>
			<content:encoded><![CDATA[<p>In a <a href="http://blog.urth.org/2009/08/how-i-use-catalyst.html">recent post</a> Dave Rolsky points out some of his own best practices for Catalyst. While I&#8217;ve come around to agree with his first point, that Catalyst should generate a reusable config class for the user, I&#8217;m not so sure with regards to his model viewpoints.</p>
<p>For me, the strength of Catalyst&#8217;s Model layer has always been the immense glue layer that allows me to configure any model in a predictable way. Much like DBI gives me a unified way to talk to databases, the Catalyst model-layer gives us a unified way of configuring models. In addition, we are able to provide helpers to create these models from the command line, reducing the work needed to set up a new model.</p>
<p>I will grant Dave that the API for the model adapters could be better. It is my hope that we will accomplish as Catalyst takes advantage of more of the new stack that Moose provides. In particular I am excited about the work Devin Austin is doing for GSOC on<a href="http://www.codedright.net/2009/06/a-technical-report-of-my-gsoc-statusprogress.html"> improving the -Devel package</a>. This is an area where we can significally improve without too much worry about backwards compability. For instance, the KiokuDB model already uses moose accessors for config.</p>
<p>Dave&#8217;s example only limits itself to talking to a SQL store via DBIx::Class. However, real world applications typically have several models. In some of my apps I talk to S3, or Queue servers, or LDAP stores for user management. This shows the true power of the Catalyst model layer.</p>
<p>I also hope that we can provide a different way to tie models to controllers. This should be part of the moosify branch of Catalyst-Runtime. I disagree that $schema->resultset(&#8216;Person&#8217;)  is a significant  improvement  on $c->model(&#8216;DBIC::Person&#8217;). Controller code is not meant to run without a context anyways. </p>
<p>I hope that by looking at Moose Extensions, we will be able to find a more suitable API for this functionality. Of course, we have a lot of work ahead of us, but I am really starting to like what Catalyst has turned into.</p>
]]></content:encoded>
			<wfw:commentRss>http://marcus.nordaaker.com/2009/08/model-adaptors-for-catalyst/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Initial Impressions of Catalyst Book &#124; A Foolish Manifesto</title>
		<link>http://blog.afoolishmanifesto.com/archives/977</link>
		<comments>http://marcus.nordaaker.com/2009/07/initial-impressions-of-catalyst-book-a-foolish-manifesto/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 07:30:20 +0000</pubDate>
		<dc:creator>marcus</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Book]]></category>
		<category><![CDATA[Catalyst]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://marcus.nordaaker.com/?p=2667</guid>
		<description><![CDATA[Frew Schmidt has read the first four chapter of the new Catalyst book and gives some first impressions: So far though, I would say that the book is better than most programming books. Really, a lot of programming books need to be more like this, instead of focusing entirely on the arcana of one framework [...]]]></description>
			<content:encoded><![CDATA[<p>Frew Schmidt has read the first four chapter of the <a href="http://www.apress.com/book/view/9781430223658">new Catalyst book</a> and gives some first impressions:</p>
<blockquote><p>So far though, I would say that the book is better than most programming books. Really, a lot of programming books need to be more like this, instead of focusing entirely on the arcana of one framework they should help you be a better programmer overall.</p></blockquote>
<p><a href="http://marcus.nordaaker.com/2009/07/initial-impressions-of-catalyst-book-a-foolish-manifesto/" title="Permalink to this post">(permalink)</a></p>]]></content:encoded>
			<wfw:commentRss>http://marcus.nordaaker.com/2009/07/initial-impressions-of-catalyst-book-a-foolish-manifesto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Screencast: Introduction to Catalyst by Dan Dascalescu</title>
		<link>http://marcus.nordaaker.com/2009/06/screencast-introduction-to-catalyst-by-dan-dascalescu/</link>
		<comments>http://marcus.nordaaker.com/2009/06/screencast-introduction-to-catalyst-by-dan-dascalescu/#comments</comments>
		<pubDate>Sat, 20 Jun 2009 14:37:46 +0000</pubDate>
		<dc:creator>marcus</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[Catalyst]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[screencast]]></category>

		<guid isPermaLink="false">http://marcus.nordaaker.com/?p=2537</guid>
		<description><![CDATA[Suck on that, RoR :-)]]></description>
			<content:encoded><![CDATA[<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/IzVHgn7-LqY&#038;hl=en&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/IzVHgn7-LqY&#038;hl=en&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p>Suck on that, RoR :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://marcus.nordaaker.com/2009/06/screencast-introduction-to-catalyst-by-dan-dascalescu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I love lazy web / Catalyst dispatcher graphs</title>
		<link>http://lumberjaph.net/blog/index.php/2009/05/30/catalystxdispatcherasgraph/</link>
		<comments>http://marcus.nordaaker.com/2009/05/i-love-lazy-web-catalyst-dispatcher-graphs/#comments</comments>
		<pubDate>Sun, 31 May 2009 10:46:15 +0000</pubDate>
		<dc:creator>marcus</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Catalyst]]></category>
		<category><![CDATA[Graphing]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://marcus.nordaaker.com/?p=2357</guid>
		<description><![CDATA[So, it seems that people are actually reading my ramblings. For instance, Franck Cuny read my description of the Mojo routes graph generator. Then he took it upon himself to write the Catalyst equivalent. That is just so awesome! Frank says &#8220;For the moment only private actions are graphed.&#8221;, hopefully, it can be extended to [...]]]></description>
			<content:encoded><![CDATA[<p>So, it seems that people are actually reading my ramblings.  For instance, <a href="http://lumberjaph.net/blog/">Franck Cuny</a> read my description of the <a href="http://marcus.nordaaker.com/2009/05/awesome-route-graph-with-mojoxroutesasgraph/">Mojo routes graph generator</a>. Then he took it upon himself to write the <a href="http://github.com/franckcuny/CatalystX--Dispatcher--AsGraph/tree/master">Catalyst equivalent</a>. That is just so awesome! </p>
<p>Frank says &#8220;For the moment only private actions are graphed.&#8221;, hopefully, it can be extended to understand chained actions. I can&#8217;t wait to test it out on the <a href="http://iusethis.com/">iusethis</a> code base. Now I can just hand this graph to <a href="http://arne.nordaaker.com/">Arne</a> when he wants to know which template matches which action.</p>
<p><a href="http://marcus.nordaaker.com/2009/05/i-love-lazy-web-catalyst-dispatcher-graphs/" title="Permalink to this post">(permalink)</a></p>]]></content:encoded>
			<wfw:commentRss>http://marcus.nordaaker.com/2009/05/i-love-lazy-web-catalyst-dispatcher-graphs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dream job?</title>
		<link>http://jobs.perl.org/job/10462</link>
		<comments>http://marcus.nordaaker.com/2009/04/dream-job/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 10:21:19 +0000</pubDate>
		<dc:creator>marcus</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Catalyst]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://marcus.nordaaker.com/?p=1787</guid>
		<description><![CDATA[Apparently Catalyst and DBIx::Class powers one of the biggest porn sites in the world, YouPorn: We operate one of the most visited Catalyst/DBIx::Class sites in the world with 90 million users and hundreds of millions of pageviews per day. They are looking for contractors all over the world. No matter what you might think of [...]]]></description>
			<content:encoded><![CDATA[<p>Apparently <a href="http://catalystframework.org/">Catalyst</a> and DBIx::Class powers one of the biggest porn sites in the world, <a href="http://youporn.com/">YouPorn</a>:</p>
<blockquote><p>We operate one of the most visited Catalyst/DBIx::Class sites in the world with 90 million users and hundreds of millions of pageviews per day. </p></blockquote>
<p>They are looking for contractors all over the world. No matter what you might think of the content, the stack they are using seems cool, pretty much the same libraries we use to power <a href="http://iusethis.com/">iusethis</a> and our other sites.</p>
<p><a href="http://marcus.nordaaker.com/2009/04/dream-job/" title="Permalink to this post">(permalink)</a></p>]]></content:encoded>
			<wfw:commentRss>http://marcus.nordaaker.com/2009/04/dream-job/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Easy debugging of your Catalyst app</title>
		<link>http://bigdiver.wordpress.com/2009/03/31/easy-debugging-for-your-perl-catalyst-web-applications/</link>
		<comments>http://marcus.nordaaker.com/2009/04/easy-debugging-of-your-catalyst-app/#comments</comments>
		<pubDate>Wed, 01 Apr 2009 05:19:17 +0000</pubDate>
		<dc:creator>marcus</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Catalyst]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://marcus.nordaaker.com/?p=1737</guid>
		<description><![CDATA[BigDiver shows us how to easily set up Komodo&#8217;s remote debugging to work with Catalyst. If you don&#8217;t like Komodo, you could also check out Leon&#8217;s Devel::ebug, which actually has a Catalyst-based frontend. (permalink)]]></description>
			<content:encoded><![CDATA[<p>BigDiver shows us how to easily set up Komodo&#8217;s remote debugging to work with Catalyst. If you don&#8217;t like Komodo, you could also check out Leon&#8217;s <a href="http://search.cpan.org/~lbrocard/Devel-ebug-0.49/">Devel::ebug</a>, which actually has a Catalyst-based frontend.</p>
<p><a href="http://marcus.nordaaker.com/2009/04/easy-debugging-of-your-catalyst-app/" title="Permalink to this post">(permalink)</a></p>]]></content:encoded>
			<wfw:commentRss>http://marcus.nordaaker.com/2009/04/easy-debugging-of-your-catalyst-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Painless rollouts with FCGI::Engine</title>
		<link>http://marcus.nordaaker.com/2009/02/painless-rollouts-with-fcgiengine/</link>
		<comments>http://marcus.nordaaker.com/2009/02/painless-rollouts-with-fcgiengine/#comments</comments>
		<pubDate>Tue, 24 Feb 2009 21:44:00 +0000</pubDate>
		<dc:creator>marcus</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[Catalyst]]></category>
		<category><![CDATA[iusethis]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://marcus.nordaaker.com/?p=1182</guid>
		<description><![CDATA[Our software site i use this is built on the MVC Framework Catalyst. We currently run it using the Russian web server Nginx and standalone fastcgi servers. I am using the Moose based CGI::Engine distribution by Stevan Little to start the servers. This module makes it really easy to manage your applications. You just create [...]]]></description>
			<content:encoded><![CDATA[<p>Our software site <a href="http://iusethis.com/">i use this</a> is built on the MVC Framework <a href="http://catalyst.perl.org/">Catalyst</a>. We currently run it using the Russian web server <a href="http://wiki.codemongers.com/Main">Nginx</a> and standalone fastcgi servers.  I am using  the Moose based <a href="http://search.cpan.org/~stevan/FCGI-Engine-0.06/">CGI::Engine</a> distribution by Stevan Little to start the servers. This module makes it really easy to manage your applications. You just create a YML config file like this:</p>
<pre>
---
- name: "iusethis-osx.server"
  nproc: 4
  scriptname: "/www/iusethis-osx/script/iusethis_fastcgi.pl"
  pidfile: "/var/run/iusethis-osx.pid"
  socket: "/var/run/iusethis-osx.sock"
</pre>
<p>with an entry for each server you want to run. (Note that the paths has been changed to protect the innocent.) Then you just create a simple perl script (See the <a href="http://search.cpan.org/~stevan/FCGI-Engine-0.06/lib/FCGI/Engine/Manager.pm">FCGI::Engine::Manager SYNOPSIS</a> for a sample), and you can easily start, stop and check the status for each application individually or every application in your config. If you have a system v style init, you can just stick the script in /etc/init.d/ and it will behave just like any of your other startup scripts.</p>
<p>There is one annoying detail. Each time you roll out code, you have to restart your fastcgi processes. Since Catalyst takes some time to initialize, the application is down, and end users gets 500 Internal Server Error responses, unless you have a load balancer in front and take the node out of the cluster before upgrading. It does not have to work like this. Since the fcgi workers use a non-exclusive lock on the socket, you can start a new set of processes before you kill the old ones. this way, no requests are lost.</p>
<p>I really wanted this feature, so I have spent some time today hacking  on FCGI::Engine. Stevan accepted my patches, and released version <a href="http://search.cpan.org/~stevan/FCGI-Engine-0.06/">0.06</a>, which supports this restart mode, via a new &#8216;graceful&#8217; method added to FCGI::Engine::Manager + some bug fixes. Nginx already support <a href="http://wiki.codemongers.com/NginxCommandLine#utnbotf">On the fly upgrades</a>, which means there is no need for us to drop a user connection when rolling out new code again.</p>
]]></content:encoded>
			<wfw:commentRss>http://marcus.nordaaker.com/2009/02/painless-rollouts-with-fcgiengine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Latest OSX Security upgrade can break your Perl</title>
		<link>http://bulknews.typepad.com/blog/2009/02/mac-os-x-security-update-2009001-breaks-perl-cpan.html</link>
		<comments>http://marcus.nordaaker.com/2009/02/latest-osx-security-upgrade-can-break-your-perl/#comments</comments>
		<pubDate>Mon, 16 Feb 2009 18:46:16 +0000</pubDate>
		<dc:creator>marcus</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[Catalyst]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://marcus.nordaaker.com/?p=877</guid>
		<description><![CDATA[Apple has shipped a somewhat untested security update, it seems. After installing it, my Catalyst apps stopped working in development. Trying to reinstall some modules through the CPAN shell brought further misery. Luckily, Miyagawa had already posted a solution to the CPAN problem. In addition, it seems they have installed a broken Scalar::Utils, so after [...]]]></description>
			<content:encoded><![CDATA[<p>Apple has shipped a somewhat untested security update, it seems. After installing it, my Catalyst apps stopped working in development. Trying to reinstall some modules through the CPAN shell brought further misery. Luckily, <a href="http://bulknews.typepad.com/blog/">Miyagawa</a> had already <a href="http://bulknews.typepad.com/blog/2009/02/mac-os-x-security-update-2009001-breaks-perl-cpan.html">posted a solution</a> to the CPAN problem. </p>
<p>In addition, it seems they have installed a broken Scalar::Utils, so after following his advice and installing IO manually to get a unbroken CPAN shell, I suggest running</p>
<pre>cpan> force install Scalar::Util</pre>
<p>To get a working weaken again.  At least this fixes my stuff, but they might have broken more XS stuff. I&#8217;ll keep you posted if I discover anything else.</p>
<p><a href="http://marcus.nordaaker.com/2009/02/latest-osx-security-upgrade-can-break-your-perl/" title="Permalink to this post">(permalink)</a></p>]]></content:encoded>
			<wfw:commentRss>http://marcus.nordaaker.com/2009/02/latest-osx-security-upgrade-can-break-your-perl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

