<?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>Huddled Masses &#187; Documentation</title>
	<atom:link href="http://huddledmasses.org/tag/documentation/feed/" rel="self" type="application/rss+xml" />
	<link>http://huddledmasses.org</link>
	<description>You can do more than breathe for free...</description>
	<lastBuildDate>Fri, 27 Apr 2012 05:42:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
<cloud domain='huddledmasses.org' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
		<item>
		<title>What&#8217;s the desired behavior of inputObject?</title>
		<link>http://huddledmasses.org/whats-the-desired-behavior-of-inputobject/</link>
		<comments>http://huddledmasses.org/whats-the-desired-behavior-of-inputobject/#comments</comments>
		<pubDate>Sat, 22 Dec 2007 22:59:00 +0000</pubDate>
		<dc:creator>Joel 'Jaykul' Bennett</dc:creator>
				<category><![CDATA[Huddled]]></category>
		<category><![CDATA[Behavior]]></category>
		<category><![CDATA[Bugs]]></category>
		<category><![CDATA[Cmdlet]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Documentation]]></category>
		<category><![CDATA[Expectations]]></category>
		<category><![CDATA[Pipeline]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[Users]]></category>

		<guid isPermaLink="false">http://HuddledMasses.org/whats-the-desired-behavior-of-inputobject/</guid>
		<description><![CDATA[In response to Kirk Munro’s comment on my Writing Cmdlets for the PowerShell Pipeline post: You know, I’ve looked at your articles about cmdlets/functions in the pipeline and I feel you’re missing something. The purpose of the InputObject parameter is to pass in a collection as a single object. This is as opposed to using [...]]]></description>
			<content:encoded><![CDATA[	<p>In response to Kirk Munro’s <a href="http://huddledmasses.org/writing-cmdlets-for-the-powershell-pipeline/feed/">comment</a> on my <a href="http://huddledmasses.org/writing-cmdlets-for-the-powershell-pipeline/">Writing Cmdlets for the PowerShell Pipeline</a> post:</p>

	<blockquote>
		<p>You know, I’ve looked at your articles about cmdlets/functions in the pipeline and I feel you’re missing something. The purpose of the InputObject parameter is to pass in a collection as a single object. This is as opposed to using the pipeline where a collection is passed along the pipeline one item at a time. There are cases where you want to pass in a collection as a collection.</p>
	</blockquote>

	<p>Quite simply, I disagree.  The documentation for these parameters says quite clearly that inputObject “Specifies an object or objects to input to the cmdlet.” This clearly means that I should be able to pass multiple objects, <strong>and have them treated as multiple objects</strong>, not as a single array object.</p>

	<blockquote>
		<p>If you look at your example (Select -First 3 -Unique -InputObject $a), this does in fact work. It receives one object, an array. It then selects the first 3 objects, but there is only 1 so that is moot. And lastly it selects unique objects, but again there is only 1 so that is moot as well and finally the object is output using the default formatter. In this case the default formatter is showing the contents of the array.</p>
	</blockquote>

	<p>In this example, <code>Select-Object</code> has no reason to take a <strong>single object</strong> as an input object, at all.  The only time that it would be useful for Select-Object to take a single inputObject would be in combination with the <code>property</code> parameters. In fact, if you want to Select-Object from an array to get the first of last n objects, or to get a set of unique objects, you <em>have to pass the objects in via the pipeline</em> &#8212; there&#8217;s no other way to make it select from an array. If that was indeed the intent, it should have been written as a <strong>separate ParameterSet</strong>, and <em>the documentation should be changed</em> to reflect that only a single object can be passed in, and that you can&#8217;t use the inputObject parameter with the <code>first</code>, <code>last</code>, or <code>unique</code> parameters at all. That’s worse than useless, it’s misleading and confusing.</p>

	<p>Kirk is absolutely right that if you assume that the InputObject argument is only allowed to take a single object, then the behavior is correct – but it’s not logical.  In fact, the behavior you see in the output of this command is so useless as to be a bug – even if the documentation did not say the parameter accepts multiple objects as input:</p>

	<div class="posh code posh" style="font-family:monospace;"><br />
<span style="color: #0066cc; font-style: italic;">Select-<span style="font-style: normal;">Object</span></span> <span style="color: #000066;">-input</span> <span style="color: #cc66cc;">4</span>,<span style="color: #cc66cc;">5</span>,<span style="color: #cc66cc;">6</span>,<span style="color: #cc66cc;">4</span>,<span style="color: #cc66cc;">8</span> <span style="color: #000066;">-first</span> <span style="color: #cc66cc;">2</span> <span style="color: #000066;">-unique</span><br />
<span style="color: #cc66cc;">4</span><br />
<span style="color: #cc66cc;">5</span><br />
<span style="color: #cc66cc;">6</span><br />
<span style="color: #cc66cc;">4</span><br />
<span style="color: #cc66cc;">8</span></div>

	<h3>I know that that’s the way the built-in cmdlets work.</h3>

	<p>But quite frankly, just because someone important wrote something useless is no reason to emulate the behavior.  The inputObject parameter IS the same parameter which pipeline objects go into.  There’s no logical explanation for us to get different results when we pass an array in via the parameter by name instead of via pipeline: the PowerShell pipeline passing the things in the pipeline into the –inputObject parameter … it’s not using some mystical variable like it does in script functions.</p>

	<p>Of course, we all know the powershell pipeline unwraps arrays &#8212; that’s convenient, and we can work around it when we really want to pass an array in:</p>

	<div class="posh code posh" style="font-family:monospace;"><br />
PS<span style="color: #66cc66;">&gt;</span> @<span style="color: #333;">&#40;</span><span style="color: #003366; font-weight: bold;"><span style="color: #333;">&#91;</span><span style="color: #003366; font-weight: bold;">int</span><span style="color: #333;">&#91;</span><span style="color: #333;">&#93;</span><span style="color: #333;">&#93;</span></span>@<span style="color: #333;">&#40;</span><span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">2</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">4</span><span style="color: #333;">&#41;</span><span style="color: #333;">&#41;</span> <span style="color: #66cc66;">|</span> <span style="color: #66cc66;">%</span> <span style="color: #333;">&#123;</span> <span style="color: #009900;">&quot;Hi: $_&quot;</span> <span style="color: #333;">&#125;</span> <span style="color: #666666; font-style: italic;"># typecast and wrapped isn’t enough...</span><br />
Hi: <span style="color: #cc66cc;">1</span><br />
Hi: <span style="color: #cc66cc;">2</span><br />
Hi: <span style="color: #cc66cc;">3</span><br />
Hi: <span style="color: #cc66cc;">4</span><br />
<br />
PS<span style="color: #66cc66;">&gt;</span> @<span style="color: #333;">&#40;</span>,<span style="color: #003366; font-weight: bold;"><span style="color: #333;">&#91;</span><span style="color: #003366; font-weight: bold;">int</span><span style="color: #333;">&#91;</span><span style="color: #333;">&#93;</span><span style="color: #333;">&#93;</span></span>@<span style="color: #333;">&#40;</span><span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">2</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">4</span><span style="color: #333;">&#41;</span><span style="color: #333;">&#41;</span> <span style="color: #66cc66;">|</span> <span style="color: #66cc66;">%</span> <span style="color: #333;">&#123;</span> <span style="color: #009900;">&quot;Hi: $_&quot;</span> <span style="color: #333;">&#125;</span> <span style="color: #666666; font-style: italic;"># put it as a member of another array</span><br />
Hi: <span style="color: #cc66cc;">1</span> <span style="color: #cc66cc;">2</span> <span style="color: #cc66cc;">3</span> <span style="color: #cc66cc;">4</span><br />
<br />
PS<span style="color: #66cc66;">&gt;</span> @<span style="color: #333;">&#40;</span>,@<span style="color: #333;">&#40;</span>,<span style="color: #003366; font-weight: bold;"><span style="color: #333;">&#91;</span><span style="color: #003366; font-weight: bold;">int</span><span style="color: #333;">&#91;</span><span style="color: #333;">&#93;</span><span style="color: #333;">&#93;</span></span>@<span style="color: #333;">&#40;</span><span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">2</span>,<span style="color: #cc66cc;">3</span>,<span style="color: #cc66cc;">4</span><span style="color: #333;">&#41;</span><span style="color: #333;">&#41;</span><span style="color: #333;">&#41;</span> <span style="color: #66cc66;">|</span> <span style="color: #66cc66;">%</span> <span style="color: #333;">&#123;</span> <span style="color: #009900;">&quot;Hi: $_&quot;</span> <span style="color: #333;">&#125;</span> &nbsp;<span style="color: #666666; font-style: italic;"># go too deep and “stuff” happens.</span><br />
Hi: System.<span style="color: #003366;">Int32</span><span style="color: #333;">&#91;</span><span style="color: #333;">&#93;</span></div>

	<blockquote>
		<p>My point in all of this is that InputObject is actually a very useful parameter, because there are cases where you really want to pass a collection as a collection into a cmdlet and then do something with it. By making InputObject instead split the collection passed in and pipeline it through, you’re forcing users to wrap collections in an array just to get them passed in as a collection, and personally I don’t feel they should have to do that.</p>
	</blockquote>

	<p>While it’s true that passing in an array is sometimes desirable that’s <strong>not</strong> the reason the parameter exists, and I don’t believe it should be the default behavior here. It should be just as easy for me to use the cmdlet with the inputObject parameter directly as it is to input them via the pipeline.  If I put in unwrapping for the inputObject parameter, you can work around it in the same way I did in the examples above. Incidentally, I think <em>*PowerShell* should unwrap arrays to <strong>ValueFromPipeline</strong> parameters regardless of whether they’re on the pipeline</em>, but I recognize it’s probably too late for that.</p>

	<p>Basically, this is my argument: If inputObject unwraps arrays, the syntax for passing an array by wrapping it in @(,$array) is simple, for those <em>rare</em> occasions when that’s actually what you want. But if it does not unwrap arrays, you’re <strong>forced</strong> to call it via a separate pipeline, because unwrapping the array and passing it in one at a time in a foreach loop will almost certainly not do the same thing, and this is much uglier &#8212; and not compatible with use within the pipeline, particularly if you need to pass the pipeline output into a different parameter.</p>

	<p>I guess my final word would be to agree with Kirk that “InputObject … isn’t documented clearly enough” … in fact, it’s clearly <strong>behaving incorrectly according to the documentation</strong>, and that’s why I originally proposed to unwrap the inputObject parameter when it’s passed as a parameter: to make it work the way the documentation suggests it would,  which seems to me to be a better way than the way it actually works.</p>]]></content:encoded>
			<wfw:commentRss>http://huddledmasses.org/whats-the-desired-behavior-of-inputobject/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>About_Filter considered Harmful</title>
		<link>http://huddledmasses.org/about_filter-considered-harmful/</link>
		<comments>http://huddledmasses.org/about_filter-considered-harmful/#comments</comments>
		<pubDate>Mon, 08 Oct 2007 17:22:07 +0000</pubDate>
		<dc:creator>Joel 'Jaykul' Bennett</dc:creator>
				<category><![CDATA[Huddled]]></category>
		<category><![CDATA[Documentation]]></category>
		<category><![CDATA[Filters]]></category>
		<category><![CDATA[PowerShell]]></category>
		<category><![CDATA[PowerShell Functions]]></category>
		<category><![CDATA[Scripting]]></category>

		<guid isPermaLink="false">http://HuddledMasses.org/about_filter-considered-harmful/</guid>
		<description><![CDATA[Someone asked a question in the #PowerShell channel on irc.FreeNode.net today about how to use filters, and pasted this an example like this: filter process-a-m &#123; &#160; &#160;$_.processname -like &#34;[a-m]*&#34; &#125; Get-Process &#124; where &#123;process-a-m&#125; The question was: why doesn&#8217;t this have any output? Well, the answer is: it can&#8217;t have any output. The filter [...]]]></description>
			<content:encoded><![CDATA[	<p>Someone asked a question in the #PowerShell channel on irc.FreeNode.net today about how to use filters, and pasted this an example like this:</p>

	<div class="posh code posh" style="font-family:monospace;"><br />
<span style="color: #666699; font-weight: bold;">filter</span> process<span style="color: #66cc66;">-</span>a<span style="color: #66cc66;">-</span>m<br />
<span style="color: #333;">&#123;</span><br />
&nbsp; &nbsp;<span style="color: #660033; font-weight: bold;">$_</span>.<span style="color: #003366;">processname</span> <span style="color: #000066;">-like</span> <span style="color: #009900;">&quot;[a-m]*&quot;</span><br />
<span style="color: #333;">&#125;</span><br />
<br />
<span style="color: #0066cc; font-style: italic;">Get-<span style="font-style: normal;">Process</span></span> <span style="color: #66cc66;">|</span> <span style="color: #660033;">where</span> <span style="color: #333;">&#123;</span>process<span style="color: #66cc66;">-</span>a<span style="color: #66cc66;">-</span>m<span style="color: #333;">&#125;</span></div>

	<p>The question was: why doesn&#8217;t this have any output? Well, the answer is: it can&#8217;t have any output. The <em>filter</em> outputs true or false for each item passed into it, but the <em>where</em> scriptblock doesn&#8217;t actually pass anything into the filter! Of course we quickly fixed his problem <em>the right way</em> by rewriting the filter to output the items, and getting rid of the where-object call completely &#8230; but when I started wondering where he had gotten the bizarre idea to use a filter like that, his answer was: &#8220;I read about_filter.&#8221;  So I went and looked, and sure enough, the example pasted above is straight out of about_filter.  <strong>And it&#8217;s as wrong as it can possibly be</strong>.</p>

	<p>Let me fix it, and then offer some clarification below.  In <strong>about_filter</strong> there is an example like this: <code>Get-Process | where {$_.processname -like &#34;[a-m]*&#34;}</code> and then a table describing each element of the Where-Object command, and just below it, there is some text about the <strong><em>filter</em></strong> command.  Mentally replace that text with this:<span id="more-445"></span> </p>

	<blockquote>
		<p>You can create a predefined filter by creating a special type of function. When defining the function, you may specify that it is a filter. For the filter script block, you should output items if they pass the test you saw in the preceding example. For instance, the following command creates a filter named process-a-m:</p>
		<div class="posh code posh" style="font-family:monospace;"><span style="color: #666699; font-weight: bold;">filter</span> process<span style="color: #66cc66;">-</span>a<span style="color: #66cc66;">-</span>m<br />
&nbsp; &nbsp; <span style="color: #333;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666699; font-weight: bold;">if</span><span style="color: #333;">&#40;</span> <span style="color: #660033; font-weight: bold;">$_</span>.<span style="color: #003366;">processname</span> <span style="color: #000066;">-like</span> <span style="color: #009900;">&quot;[a-m]*&quot;</span> <span style="color: #333;">&#41;</span> <span style="color: #333;">&#123;</span> <span style="color: #0066cc; font-style: italic;">Write-<span style="font-style: normal;">Output</span></span> <span style="color: #660033; font-weight: bold;">$_</span> <span style="color: #333;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #333;">&#125;</span></div>
		<p>You can then use the filter name in place of your Where-Object command to retrieve the filtered data, as shown in the following example:</p>
		<div class="posh code posh" style="font-family:monospace;"><span style="color: #0066cc; font-style: italic;">Get-<span style="font-style: normal;">Process</span></span> <span style="color: #66cc66;">|</span> process<span style="color: #66cc66;">-</span>a<span style="color: #66cc66;">-</span>m</div>
		<p>The values returned by the command are the same as they would have been had you specified the conditions using the Where-Object cmdlet as above, but the filter is much easier to reuse on multiple calls, particularly if the conditions were more complicated.</p>
		<p>Of course, a filter function can take parameters, just like any other function, so you could make the range of starting letters more flexible:</p>
		<div class="posh code posh" style="font-family:monospace;"><span style="color: #666699; font-weight: bold;">filter</span> process<span style="color: #66cc66;">-</span>range<span style="color: #333;">&#40;</span><span style="color: #003366; font-weight: bold;"><span style="color: #333;">&#91;</span><span style="color: #003366; font-weight: bold;">char</span><span style="color: #333;">&#93;</span></span><span style="color: #660033; font-weight: bold;">$a</span><span style="color: #66cc66;">=</span><span style="color: #009900;">&quot;a&quot;</span>,<span style="color: #003366; font-weight: bold;"><span style="color: #333;">&#91;</span><span style="color: #003366; font-weight: bold;">char</span><span style="color: #333;">&#93;</span></span><span style="color: #660033; font-weight: bold;">$m</span><span style="color: #66cc66;">=</span><span style="color: #009900;">&quot;m&quot;</span><span style="color: #333;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #333;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666699; font-weight: bold;">if</span><span style="color: #333;">&#40;</span> <span style="color: #660033; font-weight: bold;">$_</span>.<span style="color: #003366;">processname</span> <span style="color: #000066;">-like</span> <span style="color: #009900;">&quot;[$a-$m]*&quot;</span> <span style="color: #333;">&#41;</span> <span style="color: #333;">&#123;</span> <span style="color: #0066cc; font-style: italic;">Write-<span style="font-style: normal;">Output</span></span> <span style="color: #660033; font-weight: bold;">$_</span> <span style="color: #333;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #333;">&#125;</span></div>
		<p>Now you can use this filter to select between any two letters quite easily:</p>
		<div class="posh code posh" style="font-family:monospace;"><span style="color: #0066cc; font-style: italic;">Get-<span style="font-style: normal;">Process</span></span> <span style="color: #66cc66;">|</span> <span style="color: #666699; font-weight: bold;">process</span> b j</div>
	</blockquote>

	<h4>Functions vs. Filters</h4>

	<p>To be clear, functions in PowerShell aren&#8217;t like functions in other programming languages, although they <strong>can</strong> just have a body (and be like other functions) they can instead have pipeline syntax.  A function (just like a cmdlet) which is meant to be used in the pipeline has three separate bodies: <strong>begin</strong>, <strong>process</strong>, and <strong>end</strong>, but a filter has only the <em>process</em> part of the body.</p>

	<p>Of course, there are other uses for filters than just limiting which objects come through &#8230; anything that you could do with foreach-object or where-object, you can basically do with a filter in a much more reusable way.  So you don&#8217;t have to write the same thing to the output as what came in the input, you could actually add to it, or remove from it.  A filter for processes could look use Win32_Process to look up their &#8216;owner&#8217; and append it as a property, or could return the process path and name as text &#8230;</p>

	<p>If you&#8217;re new to all of this, let me just present an example function to hopefully clear things up:</p>

	<div class="posh code posh" style="font-family:monospace;"><br />
<span style="color: #666699; font-weight: bold;">Function</span> DemoTheCount<span style="color: #333;">&#40;</span><span style="color: #660033; font-weight: bold;">$things</span><span style="color: #66cc66;">=</span><span style="color: #009900;">&quot;things&quot;</span><span style="color: #333;">&#41;</span> <span style="color: #333;">&#123;</span><br />
&nbsp; <span style="color: #666699; font-weight: bold;">begin</span> <span style="color: #333;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #0066cc; font-style: italic;">Write-<span style="font-style: normal;">Host</span></span> <span style="color: #009900;">&quot;Let us count $things!&quot;</span><br />
&nbsp; &nbsp; <span style="color: #660033; font-weight: bold;">$counter</span> <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">0</span><br />
&nbsp; <span style="color: #333;">&#125;</span><br />
&nbsp; <span style="color: #666699; font-weight: bold;">process</span> <span style="color: #333;">&#123;</span><br />
&nbsp; &nbsp;<span style="color: #660033; font-weight: bold;">$counter</span><span style="color: #66cc66;">++</span><br />
&nbsp; &nbsp; <span style="color: #0066cc; font-style: italic;">Write-<span style="font-style: normal;">Output</span></span> <span style="color: #009900;">&quot;$counter wonderful $things! &nbsp; &nbsp;$_&quot;</span><br />
&nbsp; <span style="color: #333;">&#125;</span><br />
&nbsp; <span style="color: #666699; font-weight: bold;">end</span> <span style="color: #333;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #0066cc; font-style: italic;">Write-<span style="font-style: normal;">Host</span></span> <span style="color: #009900;">&quot;Ha, ha, ha, ha .. $counter wonderful $($_.GetType())es!&quot;</span> <br />
&nbsp; <span style="color: #333;">&#125;</span><br />
<span style="color: #333;">&#125;</span></div>

	<p>A function without an internal pipeline block is basically like the <strong>begin</strong> block of a pipeline-enabled function: the only things present are the parameters to the function (if there are any).  Then, <strong>process</strong> is called once for each item in the pipeline, with the current item set as the $_ variable. Finally, <strong>end</strong> is called, and you still have the last item in the pipeline present.  The scope persists through each part of the function (so you will see that $counter maintains it&#8217;s value).  The important distinction between this and a function without a <strong>process</strong> body is that a normal function will only be called <em>once</em> when it is in a pipeline &#8212; regardless of how many things are in the pipeline.  If you called DemoTheCount with a list of processes, like <code>Get-Process g* | DemoTheCount</code>, you would get something like this (depending on the processes running on your PC):</p>

	<div class="txt code txt" style="font-family:monospace;">Let us count!<br />
1 wonderful things! &nbsp; &nbsp;System.Diagnostics.Process (gajim)<br />
2 wonderful things! &nbsp; &nbsp;System.Diagnostics.Process (GeoShell)<br />
Ha, ha, ha, ha .. 2 wonderful System.Diagnostics.Process(es)!</div>

	<p>A filter doesn&#8217;t have separate parts, because the <strong>whole</strong> filter is the <strong><em>process</em></strong> part of the function.  If we were to take the process portion of our <code>DemoTheCount</code> function and turn it into a filter, it would only work because the dynamic language would automatically initialize $counter to zero and let you increment it &#8212; anything more complex (or where the type couldn&#8217;t be deduced) would not. When you create a filter using the filter keyword, it&#8217;s pure syntax sugar.  The filter <code>process-a-m</code> defined in my correction to the documentation is <strong>exactly</strong> the same as this function:</p>

	<div class="posh code posh" style="font-family:monospace;"><br />
<span style="color: #666699; font-weight: bold;">function</span> reprocess<span style="color: #66cc66;">-</span>a<span style="color: #66cc66;">-</span>m <br />
<span style="color: #333;">&#123;</span> <span style="color: #666699; font-weight: bold;">process</span> <span style="color: #333;">&#123;</span><br />
&nbsp; <span style="color: #666699; font-weight: bold;">if</span><span style="color: #333;">&#40;</span><span style="color: #660033; font-weight: bold;">$_</span>.<span style="color: #003366;">processname</span> <span style="color: #000066;">-like</span> <span style="color: #009900;">&quot;[a-m]*&quot;</span><span style="color: #333;">&#41;</span> <span style="color: #333;">&#123;</span> <span style="color: #0066cc; font-style: italic;">Write-<span style="font-style: normal;">Output</span></span> <span style="color: #660033; font-weight: bold;">$_</span> <span style="color: #333;">&#125;</span><br />
<span style="color: #333;">&#125;</span> <span style="color: #333;">&#125;</span></div>

	<p>You can verify this by creating both of them and then comparing the contents of the resulting functions (<code>(get-content function:\process-a-m) -eq (get-content function:\reprocess-a-m)</code>.  The filter keyword simply creates a function and with the filter body as the <strong>process</strong> body for the function.</p>]]></content:encoded>
			<wfw:commentRss>http://huddledmasses.org/about_filter-considered-harmful/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

