<?xml version="1.0" encoding="windows-1252"?>
<node id="1003652" title="Re: ordering array of sentences" created="2012-11-13 11:15:46" updated="2012-11-13 11:15:46">
<type id="11">
note</type>
<author id="832495">
choroba</author>
<data>
<field name="doctext">
If the list of sentences is longer, searching for a word before another word might slow the program down ([doc://Benchmark]). Schwartzian transform to the rescue:

&lt;c&gt;#!/usr/bin/perl
use warnings;
use strict;
use feature 'say';

my @sentences = ('I am searching for a word',
                 'What are you searching for?',
                 'Today I have been searching for a new job',
                );

my $query = 'searching';    # Not @query, it is a scalar, not an array.

say for map $_-&gt;[1],
    sort { $a-&gt;[0] cmp $b-&gt;[0] }
    map { /(\w+)\s+searching/; [$1, $_] }
    @sentences;
&lt;/c&gt;&lt;!-- Node text goes above. Div tags should contain sig only --&gt;
&lt;div class="pmsig"&gt;&lt;div class="pmsig-832495"&gt;

&amp;#1604;&amp;#1405;&amp;#4285;† &amp;#6514;&amp;#6482;&amp;#9898;&amp;#10186;&amp;#4281;&amp;#5651;&amp;#5511; &amp;#5045;&amp;#5651;&amp;#5511;&amp;#9137; &amp;#4281;&amp;#6514;&amp;#119243;&amp;#409;&amp;#5651;&amp;#5511;
&lt;/div&gt;&lt;/div&gt;</field>
<field name="root_node">
1003644</field>
<field name="parent_node">
1003644</field>
</data>
</node>
