in reply to Re^3: Sorting text files.
in thread Sorting text files.

That's why the .= is there :)

Replies are listed 'Best First'.
Re^5: Sorting text files.
by BrowserUk (Patriarch) on Nov 07, 2015 at 00:03 UTC

    Cool. (But within the duplicate records no ordering is done. Which might be what the OP wants.)

      Well, the OP didn't ask for that, but if he wants it, (and this is one of the reasons I love perl) it's an easy fix :)

      #!/usr/bin/perl # http://perlmonks.org/?node_id=1147112 use Inline::Files; use strict; use warnings; my %id; $id{ s/;.*//r } .= $_ for sort <FILE1>; print delete @id{ <FILE2> }, values %id; __FILE1__ 1 HD;BSkyB:11097:VC23M5O25P0S1:S28.2E:23000:2305=27:2307=NAR@4;2306=en +g@106:2308;2309=eng:0:21000:2:2066:0 2 HD;BSkyB:11097:VC23M5O25P0S1:S28.2E:23000:2315=27:2316=NAR@4;2317=en +g@106:2318;2319=eng:0:21020:2:2066:0 3 HD;BSkyB:11097:VC23M5O25P0S1:S28.2E:23000:2320=27:2321=NAR@4;2322=en +g@106:2323;2324=eng:0:21030:2:2066:0 ITV HD;BSkyB:11097:VC23M5O25P0S1:S28.2E:23000:2305=27:2307=NAR@4;2306= +eng@106:2308;2309=eng:0:21000:2:2066:0 __FILE2__ 3 HD 1 HD 2 HD

      (with another simplification thrown in)

        Nice!
        Ok excuse the stupid question, but perl is new to me.

        I have file names FILE1 and FILE2 I also tried with __FILE1__ as read here (http://search.cpan.org/~ambs/Inline-Files-0.69/lib/Inline/Files.pm)

        But I keep getting errors

        xbmc@bloris:~/vdrchan$ perl sort2.pl

        + Name "main::FILE1" used only once: possible typo at sort2.pl line 9. + + Name "main::FILE2" used only once: possible typo at sort2.pl line 7. + + readline() on unopened filehandle FILE2 at sort2.pl line 7. + + readline() on unopened filehandle FILE1 at sort2.pl line 9.
        These are warnings obviously, but I get no output
        Is vf load failing?
        xbmc@bloris:~/vdrchan/test$ perl + + use Inline::Files; + + Could not vf_load '/home/xbmc/vdrchan/test/-' at /usr/local/share/perl +/5.18.2/Inline/Files.pm line 39. + BEGIN failed--compilation aborted at - line 1. + + xbmc@bloris:~/vdrchan/test$

        cpan[1]> install Inline::Files + + Reading '/home/xbmc/.cpan/Metadata' + + Database was generated on Fri, 06 Nov 2015 19:17:02 GMT + + Inline::Files is up to date (0.69). + + + + cpan[2]>